我在列表中有以下值:
'image_result': [{'checksum': '701e172bd980177ae1311f265a753582',
'path': 'full/ee4d4341b88168972e76c61f45b8db10b349f175.jpg',
'url': 'http://image-url.com/ID71026700-0000-0500-0000-0000033eb03c.jpg'},
{'checksum': 'e0b3cada2a8377913bc779a16f1d9e36',
'path': 'full/410c964db8de6138622c1e1b3b94062b69caedc8.jpg',
'url': 'image-url.com/ID71026700-0000-0500-0000-0000033eb03d.jpg'},
{'checksum': '39c9a06f221ba584f691f0def0fde2c4',
'path': 'full/574dcb9a6af1ea7b733e6986c6a10ba815ca23b4.jpg',
'url': 'image-url.com/ID71026700-0000-0500-0000-0000033eb03e.jpg'}]
我希望得到“路径”。将值格式化并将其格式化为以下内容,使其成为全局image
键:
'image': 'full/ee4d4341b88168972e76c61f45b8db10b349f175.jpg',
'image': 'full/ee4d4341b88168972e76c61f45b8db10b349f175.jpg',
'image': 'full/574dcb9a6af1ea7b733e6986c6a10ba815ca23b4.jpg'
我的代码为我提供了如上所示的正确输出,但它只保存了最后的路径'值因为它在循环的每个循环中被覆盖:
for x in item['image_result']:
item['image'] = x.get('path')
这些是Scrapy项目,并且无法在每次我想插入新项目时覆盖项目值,以确定是否可行。我对蟒蛇也很陌生,虽然我在过去几天里进行了大量的研究,但我们还没有找到解决这个问题的方法。
答案 0 :(得分:1)
您没有更新子密钥,而是创建全局image
密钥。
改为:
for x in item['image_result']:
x['image'] = x.get('path')
如果要提取图像列表(存储为全局images
密钥),您只需执行以下操作:
item['image'] = [x.get('path') for x in item['image_result']]