将项目的多个匹配项解析到字典中

2024-09-28 18:52:52 发布

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

试图通过python从JSON数据中解析几个独立的图像链接,但是由于我认为是字符串列表的缘故,在深入到正确的级别时出现了一些问题。你知道吗

对于大多数项目,我成功地使用了下面的示例,收回了我需要的所有内容。除此之外,一切都是1:1的比例关键点:值,但对于这个键,有多个值与一个键关联。你知道吗

resultsdict['item_name'] = item['attribute_key']

我已经将它全部添加到resultsdict={},但是只有在打印时才能访问下面的示例字符串。你知道吗

输入:

for item in data['Item']:
    resultsdict['images'] = item['Variations']['Pictures']

输出(仅相关部分):

'images': [{u'VariationSpecificPictureSet': [{u'PictureURL': [u'http//imagelink1'], u'VariationSpecificValue': u'color1'}, {u'PictureURL': [u'http//imagelink2'], u'VariationSpecificValue': u'color2'}, {u'PictureURL': [u'http//imagelink3'], u'VariationSpecificValue': u'color3'}, {u'PictureURL': [u'http//imagelink4'], u'VariationSpecificValue': u'color4'}]

我觉得我可以在初始输入的末尾添加['VariationPictureSet']['PictureURL'],但这会引发一个错误,因为索引不是整数,而是字符串。你知道吗

理想情况下,我希望输出是一个简单的逗号分隔的URL列表,如下所示:

输出:

'images': http//imagelink1, http//imagelink2, http//imagelink3, http//imagelink4

Tags: 数据字符串jsonhttp示例列表itemimages
2条回答

对你的评论的回答需要一些代码。你知道吗

使用时

for item in data['Item']:
    resultsdict['images'] = item['Variations']['Pictures']

您将得到一个包含一个元素的列表,因此我建议使用

for item in data['Item']:
    resultsdict['images'] = item['Variations']['Pictures'][0]

现在你可以用

for image in resultsdict['images']['VariationsSpecificPictureSet']:
    print(image['PictureUR‌​L'])

谢谢你的帮助,@uzzee,非常感谢。我不断地修补它,并能够用下面的代码提取所有图像URL的连续字符串。你知道吗

resultsdict['images'] = sum([x['PictureURL'] for x in item['variations']['Pictures'][0]['VariationSpecificPictureSet']],[])

如果没有总和,它看起来像这样,并把整个列表。。。你知道吗

resultsdict['images'] = [x['PictureURL'] for x in item['variations']['Pictures'][0]['VariationSpecificPictureSet']]

相关问题 更多 >