Thank you for your time!
Each products, sometimes have more than one model. I got the model ‘name’ and ‘price’ of the respective models within a single product via a for loop.
But, how do I ‘transfer’ these details to the ‘yield’ section along with other variables of that same product? Below is my attempt, but i am not getting it correct. How do I edit the code, so that, it could record more than one models (along with the price) within a same product, wherever applicable:
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')
}
Advertisement
Answer
You should keep your yield inside for loop and if statement. You can try as follows:
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')
}