我是python的新手。我有如下多个json数据
"data":{
"test":{
"2.0.1":1
},
"test1":{
"2.0.2":1
},
"test3":{
"2.0.3":1
}
}
我想使用以下格式的python脚本打印数据。请帮忙。
data:2.0.1
data:2.0.2
data:2.0.3
下面是我的代码。它可以在一行中打印所有内容
import json
json_data = open('test.json')
json = json.loads(json_data.read())
mydict = json
myitems = mydict.items()
for x in mydict.items():
key = x[0]
value = x[1]
print(key, value)
答案 0 :(得分:2)
import json
with open(filename) as f:
myDict = json.load(f) #Note you can use json.load to read from file
for key, value in myDict.items():
for k,v in value.items():
print(key, v.keys()[0])
输出:
(u'data', u'2.0.1')
(u'data', u'2.0.2')
(u'data', u'2.0.3')
答案 1 :(得分:1)
您没有指出要使用哪个Python版本。
对于Python3,您需要按如下方式修改Rakesh's solution(最后一行的list(test_data)[0]
位是此处相关的位):
import json
with open('test.json') as f:
myDict = json.load(f)
for k, v in myDict.items():
for test_data in v.values():
print("{}:{}".format(k, list(test_data)[0]))
请注意,我还修改了输出以包含冒号,因此它反映了您希望输出看起来像的内容,并且我仅遍历数据字典的值。