我为糟糕的头衔道歉。我会尽力解释我想要达到的目标。
这是我的(例子)json:
{
"1": {
"2": {
"3": {
"9": 10,
"8": 11,
"7": 12
},
"4": {
"9": 13,
"8": 14,
"7": 15
},
"5": {
"9": 16,
"8": 17,
"7": 18
},
"6": {
"9": 19,
"8": 20,
"7": 21
}
}
}
}
从这里开始,我将从" 2"开始,所以我做json.loads(array)['1']
现在我想得到每个名字(" 3"," 4"," 5"," 6")喜欢这样:
3
4
5
6
然后" 9"的价值:
3 (10)
4 (13)
5 (16)
6 (19)
" 9"的价值应该是一个单独的字符串,所以为了实现上述目的,我做了"%s (%s)" % (string, string2)
现在我甚至不确定是否以" 2"是必要的,但我想展示我到目前为止所尝试的内容。
答案 0 :(得分:0)
此解决方案的关键是将大型JSON块分解为更小的块。
import json
from pprint import pprint
text = '''{
"1": {
"2": {
"3": {"9": 10, "8": 11, "7": 12},
"4": {"9": 13, "8": 14, "7": 15},
"5": {"9": 16, "8": 17, "7": 18},
"6": {"9": 19, "8": 20, "7": 21}
}
}
}
'''
block = json.loads(text)
block2 = block['1']['2']
for key, sub_block in block2.iteritems():
print '%s (%s)' % (key, sub_block['9'])
答案 1 :(得分:0)
我指出你dict.items
:
y = json.loads(array)['1']['2']
list(map(lambda i: (i[0],i[1]['9']), y.items()))
这将返回一个键值对列表,您可以使用与您在问题中提出的内容类似的内容进行打印:
[('6', 19),('5',16),('3',10),('4',13)]
items
做的是返回字典对象中的原始键值对列表(json.loads
返回的内容),然后我通过map
调用查找值部分的'9'
键。