python 3.5.1
嗨,我有以下json和python代码,我想打印json数据,但它有一个错误,说:
关键错误:' A'
蟒
data = json.load(...)
for item in data['x']
print (item['A'])
JSON
{"x":[
{"A":"B"},
{"C":"D"}
]}
我的问题是什么?
答案 0 :(得分:1)
要在每个字典中打印值(使用不匹配的键),请使用字典的values
方法:
data = json.load(...)
for item in data['x']:
print(item.values())
答案 1 :(得分:0)
正如@elethan指出的那样,第二个项目没有键'A'
您可以执行以下操作
data = json.load(...)
for item in data['x']:
print(item.get('A'))
您的特定json输入不会出现任何错误,如果它在元素中找不到None
键,则打印'A'
。
您还可以为.get()
提供默认值,例如item.get('A', 'default')
。
谢谢@elethan
答案 2 :(得分:0)
问题在于,您的代码假定--unshallow
中的每个项都有一个键data['x']
,但只要您迭代到没有这样一个键的'A'
,将获得dict
。
如果词典中没有键KeyError
,请尝试使用item.get('A')
,它将返回None
(或您提供的默认值)。看起来你想做这样的事情:
'A'
这将打印与键data = json.load(...)
for item in data['x']:
value = item.get('A')
if value:
print(value)
else:
continue
相关联的值(如果存在),否则它将移至列表中的下一个字典。