从包含JSON的列表中获取键和值

时间:2016-11-01 20:48:49

标签: python json list dictionary

我在使用Python中的列表中获取键和值时遇到问题。该列表本身包含许多JSON行,结构如下:

[{"values":"test","cost":"1234"},{"values":"test2","cost":"12345"}]

问题是我理想情况下不想将其转换为字典,因为它意味着在读取原始JSON文件期间填充一个并将每个JSON片段附加到列表然后将列表附加到字典。

我发现我可以通过这样做来打印密钥:

        for line in file:
            mylist.append(json.loads(line))
            for line in mylist:
                for key in line.keys():
                    print(key)

这一切都很好,它会打印所有的键,例如示例,“值”,“测试”等。但我无法像使用字典一样访问每个键的值:

        for line in file:
            mylist.append(json.loads(line))
            for line in mylist:
                for key,value in line.keys():
                    print(value)

因为这会抛出一个错误,说“打开太多值”,是否有一个更简单的解决方案,我没有考虑过?我已经查看了许多其他解决方案,但似乎都导致更新字典并通过字典访问键值,但我宁愿不必附加到列表然后更新每个列表的字典。

1 个答案:

答案 0 :(得分:3)

要访问键和值,请使用字典的initialize方法。

.items()

另请注意,第一种情况下的for key, value in line.items() 不是必需的,因为通过字典迭代通常会返回其键。

.keys()