笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

条目导出器

发布者: 笨鸟自学网



项字段的序列化

默认情况下,字段值是未修改地传递给基础序列化库的,如何序列化字段值的决定被委托给每个特定的序列化库。

但是,您可以自定义每个字段值的序列化方式。 在传递到序列化库之前 .

有两种方法可以自定义字段序列化的方式,下面将介绍这两种方法。

1。在字段中声明序列化程序

如果您使用 Item 中声明序列化程序。 field metadata 。序列化程序必须是可调用的,它接收值并返回其序列化形式。

例子::

import scrapy

def serialize_price(value):
    return f'$ {str(value)}'

class Product(scrapy.Item):
    name = scrapy.Field()
    price = scrapy.Field(serializer=serialize_price)

2。重写serialize_field()方法

您还可以覆盖 serialize_field() 方法自定义字段值的导出方式。

确保调用基类 serialize_field() 方法。

例子::

from scrapy.exporter import XmlItemExporter

class ProductXmlExporter(XmlItemExporter):

    def serialize_field(self, field, name, value):
        if name == 'price':
            return f'$ {str(value)}'
        return super().serialize_field(field, name, value) 

上一篇:调度程序

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 09:50 , Processed in 0.025352 second(s), 17 queries .

© 2001-2020

返回顶部