如何将我的部分代码包含到 'yield' 中?
How do I include part of my code into 'yield'?
感谢您的宝贵时间!
每一种产品,有时会有不止一种型号。我通过 for 循环获得了单个产品中各个模型的模型 'name' 和 'price'。
但是,如何将这些详细信息 'transfer' 连同同一产品的其他变量一起添加到 'yield' 部分?以下是我的尝试,但我没有得到正确的结果。我如何编辑代码,以便它可以在同一产品中记录多个型号(以及价格),只要适用:
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')
}
您不应将模型属性拆分为两个单独的列表(名称和价格)。原始数据结构比您尝试创建的要好。
你应该在你的 yielded 字典中创建一个 models
属性(我建议使用复数),并让它成为一个包含 name/price 对的列表。这些对可以是元组——或其他一些数据结构(自定义 class 实例,命名为元组、字典...):
yield {
# ... other attributes ...
'models': [(model['name'], model['price']) for model in resp['item']['models']],
}
您应该将 yield 保留在 for 循环和 if 语句中。
您可以尝试如下:
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')
}
感谢您的宝贵时间!
每一种产品,有时会有不止一种型号。我通过 for 循环获得了单个产品中各个模型的模型 'name' 和 'price'。
但是,如何将这些详细信息 'transfer' 连同同一产品的其他变量一起添加到 'yield' 部分?以下是我的尝试,但我没有得到正确的结果。我如何编辑代码,以便它可以在同一产品中记录多个型号(以及价格),只要适用:
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')
}
您不应将模型属性拆分为两个单独的列表(名称和价格)。原始数据结构比您尝试创建的要好。
你应该在你的 yielded 字典中创建一个 models
属性(我建议使用复数),并让它成为一个包含 name/price 对的列表。这些对可以是元组——或其他一些数据结构(自定义 class 实例,命名为元组、字典...):
yield {
# ... other attributes ...
'models': [(model['name'], model['price']) for model in resp['item']['models']],
}
您应该将 yield 保留在 for 循环和 if 语句中。 您可以尝试如下:
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')
}