代码如下:
import json
j = json.loads(" {\"id123\":{\"test\" : 1} } ")
j
呈现:
{'id123': {'test': 1}}
我正在尝试访问属性测试,同时忽略外部属性id。
这可以通过以下方式实现:
j['id123']['test']
返回1
但由于我事先并不知道密钥的值(在这种情况下是id123)是否有一种通用方法来访问属性test
的值,同时省略属性键{{1} }?
答案 0 :(得分:0)
您可以使用 .keys()方法查找JSON的密钥
示例强>:
import json
j = json.loads(" {\"id123\":{\"test\" : 1} } ")
print j.keys()
print j.keys()[0]
print j[j.keys()[0]]['test']
<强>结果强>:
[u'id123']
id123
1
答案 1 :(得分:0)
您可以尝试避免使用外键并获取内部字典中的所有值
import json
j = json.loads(" {\"id123\":{\"test\" : 1} } ")
for i in j.values():
for x in i:
print (i[x]) #your expected output
答案 2 :(得分:0)
如果我正确地假设您的用例,您想要查看密钥test
的值?鉴于您当前的结构 - 我认为使用items()
可能是一个解决方案。
for k,v in j.items():
if 'test' in v.keys():
print(v.values())
#output is a 'dict_values' type. If you need in another format, that can be done too
dict_values([1])