首页 > 解决方案 > Python从JSON读取逗号分隔列表

问题描述

我在 python 脚本中给出了以下 JSON 结构:

print("Producers: ", metadata['plist']['dict']['array'][2]['dict']['string'])

问题是我在该字段上没有一个条目,而是有多个条目。另请在此处查看 RAW JSON:https ://pastebin.com/rtTgmwvn

如何将这些条目作为逗号分隔的字符串提取到 [2] 的生产者字段中?

提前致谢

标签: pythonjson

解决方案


您快到了:

你可以做这样的事情

print("Producers: ", ", ".join(i["string"] for i in metadata['plist']['dict']['array'][2]['dict'])

分解解决方案......您"dict"在 JSON 中的元素实际上是一个listdict”,因此您可以简单地迭代这个list

metadata['plist']['dict']['array'][2]['dict']

dict其中每个元素都是带有"string"键的实际元素。

更新

JSON 的格式在某些情况下是一个列表,在某些情况下是单个元素。在这种情况下,我建议编写一个小函数或使用if处理每种情况的语句:

def get_csv(element):
    if isinstance(element, dict):
        return element["string"]
    return ", ".join(i["string"] for i in element)

# and you would use it like so:
print("Producers: ", get_csv(metadata['plist']['dict']['array'][2]['dict']))

推荐阅读