将多次出现的项解析为字典

时间:2016-04-13 16:35:03

标签: python string parsing dictionary

尝试通过python解析JSON数据中的几个单独的图像链接,但是由于我认为有一个字符串列表,因此有一些问题需要深入到正确的级别。

对于大多数项目,我在下面的例子中取得了成功,拉回了我需要的一切。在这个实例之外,一切都是键:值的1:1比例,但对于这个,有一个键与多个值相关联。

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

我一直把它全部添加到resultsdict = {},但是我打印时只能到达下面的示例字符串。

INPUT:

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

OUTPUT(仅限相关部分):

'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

2 个答案:

答案 0 :(得分:0)

您的评论的答案需要一些代码。

使用时

i

你得到一个包含一个元素的列表,所以我建议使用这个

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

现在可以使用

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

答案 1 :(得分:0)

感谢您的帮助,@ 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']]