python 3.5
嗨我有这个简单的json.json文件:
JSON
{"x": [
{"A": "B"},
{"C": "D"},
{"E": "F"}
]}
我有这个代码来找到A或C或E之后的字母
蟒
data = json.load(open('json.json'))
R = 'C' #user input
print(data['x'][1][R])
如何在不知道的情况下找到具有密钥的dict,并对dict的索引进行硬编码?
答案 0 :(得分:3)
所以你想通过搜索而不用硬编码索引来找到这个值,你需要的是一个循环来检查每个dict的密钥:
data = json.load(open('json.json'))
R = 'C' #user input
for d in data['x']:
if R in d:
print(d[R])
break # if there can be more that one match then remove
答案 1 :(得分:0)
正如Padraic Cunningham指出的那样,你需要循环你的结果。您的解决方案如下所示:
data = json.load(open('json.json'))
R = 'C' #user input
print([x for x in data['x'] if x.keys()[0] == R][0][R])
[x for x in data['x'] if x.keys()[0] == R]
为您提供列表中带有键R的所有词典。假设您没有重复的键,请选择第一个元素并访问其值。