我正在从items.py
导入到pipelines.py
。
问题是导入项的顺序与它们在items.py
文件中的定义方式不同。在
我的items.py
文件:
class NewAdsItem(Item):
AdId = Field()
DateR = Field()
AdURL = Field()
在我的pipelines.py
中:
输出为:
Keys in pipelines: AdId,AdURL,DateR
而不是预期的:AdId,DateR,AdURL
。在
如何确保导入的订单保持不变?
注意:这可能与How to get order of fields in Scrapy item有关,但现在还不清楚到底发生了什么,因为Python3文档声明列表和dict应该保持它们的顺序。还要注意,当使用process_item()
和使用item.keys()
时,顺序是保留的!但我需要按顺序访问键,然后项目被刮除。在
我能让它工作的唯一方法是按以下方式使用this solution。在
我的
items.py
文件:然后将
^{pr2}$_field_order
项导入到您的piplines.py
中:现在,我可以按照正确的出现顺序创建新的DB表,而不用担心Python以意外的方式对dict进行排序。在
一个简单的修复方法是在您的
Item
类中定义keys()
方法:相关问题 更多 >
编程相关推荐