如何在python中访问json值

时间:2018-07-19 12:06:38

标签: python

我是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)

2 个答案:

答案 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]))

请注意,我还修改了输出以包含冒号,因此它反映了您希望输出看起来像的内容,并且我仅遍历数据字典的值。