【发布时间】:2021-10-17 06:11:13
【问题描述】:
感谢您的宝贵时间!
每个产品,有时都有多个型号。我通过 for 循环获得了单个产品中各个型号的型号“名称”和“价格”。
但是,我如何将这些详细信息与同一产品的其他变量一起“转移”到“产量”部分?以下是我的尝试,但我没有得到正确的结果。如何编辑代码,以便它可以在同一产品中记录多个型号(以及价格)(如果适用):
for i in resp['item']['models']:
if i['name'] is not None:
model = i['name']
model_pricing = i['price']
yield{
'product': resp.get('item').get('name'),
'rating': resp.get('item').get('item_rating').get('rating_star'),
'review numbers': resp.get('item').get('cmt_count'),
'viewcount': resp.get('item').get('view_count'),
'likes': resp.get('item').get('liked_count'),
'model_pricing': model_pricing,
'model': model,
'location': resp.get('item').get('shop_location')
}
【问题讨论】:
-
您不应将模型属性拆分为两个单独的列表(名称和价格)。原始数据结构比您尝试创建的更好。
-
@trincot,所以,我应该使用在每个模型的循环中包含产量?
-
这里代码的缩进和你原来的代码一样吗?这里的
yield不是循环的一部分,而您可能是故意的。 -
其他一些在这里非常有用的东西:一些示例输入的示例、当前(不正确的)输出以及该输入的预期(期望)输出。
标签: python scrapy nested-loops yield