我想在项目类中添加项目类 [英] I want to add item class within an item class
本文介绍了我想在项目类中添加项目类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
最终的 JSON 将是:
"地址": ----,状态": - - ,年: {第一的": - - ,第二": {基本的": - - ,信息": - - ,}},
我想像(只是示例)一样创建我的 items.py:
class Item(scrapy.Item):地址 = scrapy.Field()状态 = scrapy.Field()年 = scrapy.Field(first),scrapy.Field(second)类第一(scrapy.Item):金额 = scrapy.Field()第二类(scrapy.Item):基本=scrapy.Field()信息 = scrapy.Field()
如何实现这个,已经检查过这个https://doc.scrapy.org/en/latest/topics/items.html#extending-items
但是没有关于这个概念的线索......有什么建议吗?
解决方案
class Item(scrapy.Item):地址 = scrapy.Field()状态 = scrapy.Field()年 = scrapy.Field(serializer=dict)班级年(scrapy.Item):第一个=scrapy.Field(serializer=dict)第二个=scrapy.Field(serializer=dict)类第一(scrapy.Item):金额 = scrapy.Field()第二类(scrapy.Item):基本=scrapy.Field()信息 = scrapy.Field()
这样你就可以做到:
<预><代码>>>>b = 第二(基本=你好",信息=你好世界")>>>a = 第一个(数量 = 3)>>>年 = 年(第一个 = a,第二个 = b)>>>年{'first': {'amounts': 3},'第二':{'基本':'你好','信息':'你好世界'}}>>>item = Item(address='address value', state='state value', year=year)>>>物品{'地址':'地址值','状态':'状态值','year': {'first': {'amounts': 3}, 'second': {'basic': 'hello', 'information': 'hello world'}}}Final JSON will be :
"address": ----,
"state": ----,
year: {
"first": ----,
"second": {
"basic": ----,
"Information": ----,
}
},
I want to create my items.py like (just example):
class Item(scrapy.Item):
address = scrapy.Field()
state = scrapy.Field()
year = scrapy.Field(first), scrapy.Field(second)
class first(scrapy.Item):
amounts = scrapy.Field()
class second(scrapy.Item):
basic = scrapy.Field()
information = scrapy.Field()
How to implement this , already checked this https://doc.scrapy.org/en/latest/topics/items.html#extending-items
how to implement nested item in scrapy?
but there are no clue about this concept ... any suggestion?
解决方案
class Item(scrapy.Item):
address = scrapy.Field()
state = scrapy.Field()
year = scrapy.Field(serializer=dict)
class Year(scrapy.Item):
first = scrapy.Field(serializer=dict)
second = scrapy.Field(serializer=dict)
class first(scrapy.Item):
amounts = scrapy.Field()
class second(scrapy.Item):
basic = scrapy.Field()
information = scrapy.Field()
This way you can do this:
>>> b = second(basic="hello", information="hello world")
>>> a = first(amounts=3)
>>> year = Year(first=a, second=b)
>>> year
{'first': {'amounts': 3},
'second': {'basic': 'hello', 'information': 'hello world'}}
>>> item = Item(address='address value', state='state value', year=year)
>>> item
{'address': 'address value',
'state': 'state value',
'year': {'first': {'amounts': 3}, 'second': {'basic': 'hello', 'information': 'hello world'}}}
这篇关于我想在项目类中添加项目类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文