从字典值创建新字典

2024-03-28 13:48:39 发布

您现在位置:Python中文网/ 问答频道 /正文

列表中有以下值:

'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'}]

我想获取“path”值并将其格式化为以下格式,以便它成为一个全局image键:

'image': 'full/ee4d4341b88168972e76c61f45b8db10b349f175.jpg',
'image': 'full/ee4d4341b88168972e76c61f45b8db10b349f175.jpg',
'image': 'full/574dcb9a6af1ea7b733e6986c6a10ba815ca23b4.jpg'

我的代码提供了如上所示的正确输出,但它只保存最后一个“path”值,因为它在循环的每个周期中都被覆盖:

for x in item['image_result']:
   item['image'] = x.get('path')

这些是Scrapy项,无法在每次插入新项时不覆盖项值的情况下确定这是否可行。我对python也很陌生,虽然我在过去几天做了很多研究,但还没有找到解决这个问题的方法。你知道吗


Tags: pathimagecomhttpurl列表格式result
1条回答
网友
1楼 · 发布于 2024-03-28 13:48:39

您不是在更新子键,而是在创建一个全局image键。你知道吗

请改为:

for x in item['image_result']:
   x['image'] = x.get('path')

如果要提取图像列表(存储为全局images键),只需执行以下操作:

item['image'] = [x.get('path') for x in item['image_result']]

相关问题 更多 >