我在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)
这一切看起来都很好,它打印出了所有的键,如示例中的"values","test"等。但是我不能像访问字典那样通过这种方式访问每个键对应的值:
for line in file:
mylist.append(json.loads(line))
for line in mylist:
for key,value in line.keys():
print(value)
由于这会抛出一个错误,即“拆包的值过多”,是否有一种更简单的解决方案我没有考虑到?我已经查看了许多其他解决方案,但所有解决方案似乎都会更新字典并通过字典访问键值,但我宁愿不必将列表附加到字典中,然后更新字典。
for key,value in line.items():
而不是keys
!! - Jean-François Fabre[{"values":"test","cost":"1234"},{"values":"test2","cost":"12345"}]
是有效的JSON格式。使用json.load()
从文件中可以直接得到一个列表对象,其中包含所有单独的字典作为该列表中的项,你可以直接遍历该列表。 - roganjoshloads
(带有末尾的s
)是用于字符串的。与逐行读取文件并转换行不同,只需使用load()
一次性加载整个文件即可。 - roganjosh