Я импортирую ключи элемента Scrapy из items.py
в pipelines.py
.Проблема состоит в том, что порядок импортированных элементов отличается от того, как они были определены в файле items.py
.
Мой items.py
файл:
class NewAdsItem(Item):
AdId = Field()
DateR = Field()
AdURL = Field()
В моем pipelines.py
:
from adbot.items import NewAdsItem
...
def open_spider(self, spider):
self.ikeys = NewAdsItem.fields.keys()
print("Keys in pipelines: \t%s" % ",".join(self.ikeys) )
#self.createDbTable(ikeys)
Вывод:
Keys in pipelines: AdId,AdURL,DateR
вместо ожидаемого: AdId,DateR,AdURL
.
Как я могуубедитесь, что импортированный заказ остается прежним?
Примечание: Это может быть связано с Как получить порядок полей в элементе Scrapy , но это не таксовершенно ясно, что происходит, так как документы Python3 указывают, что списки и слова должны сохранять свой порядок.Также обратите внимание, что при использовании process_item()
и item.keys()
порядок сохраняется!Но мне нужно получить доступ к ключам , чтобы до того, как item будут очищены.