Python 如何将布尔值用于刮擦项目加载器
我正在尝试使用带有Scrapy 0.24.5的项目加载器。当我使用add_item()方法时,如果我想使用布尔值或整数,它会抛出一个异常Python 如何将布尔值用于刮擦项目加载器,python,scrapy,Python,Scrapy,我正在尝试使用带有Scrapy 0.24.5的项目加载器。当我使用add_item()方法时,如果我想使用布尔值或整数,它会抛出一个异常 item.add_value('full_update', 1) item.load_items() 产生以下错误: ValueError: Error with output processor: field='full_update' value=[1] error='TypeError: expected string or buffer' 我知道它
item.add_value('full_update', 1)
item.load_items()
产生以下错误:
ValueError: Error with output processor: field='full_update' value=[1] error='TypeError: expected string or buffer'
我知道它在找一根绳子。但是我需要在我的mongodb中存储一个布尔值
我是否可以使用另一种item loader方法来实现这一点?问题不是add\u value()方法。我的一个输出处理器期望一个字符串值,
full\u update
字段正在运行
在我的items.py
中,我将output\u processor=Identity()
添加到我的完整\u更新字段中,它现在可以工作了:
class ProductsItem(scrapy.Item):
full_update = scrapy.Field(output_processor=Identity())
class ProductsItemLoader(ItemLoader):
default_item_class = ProductsItem
default_output_processor = Compose(TakeFirst(), remove_tags, lambda v: replace_escape_chars(text=v, replace_by=' '), lambda v: v.encode('utf-8'), lambda v: ' '.join(v.split()))
pass