如何在python中解析json嵌套的dict?

时间:2016-05-16 19:13:03

标签: python json parsing dictionary

我尝试使用本地存储的json文件。格式如下:

{  
   "all":{  
      "variables":{  
         "items":{  
            "item1":{  
               "one":{  
                  "size":"1"
               },
               "two":{  
                  "size":"2"
               }
            }
         }
      }
   }
}

我尝试使用以下代码获取大小键的值。

with open('path/to/file.json','r') as file:
  data = json.load(file)
itemParse(data["all"]["variables"]["items"]["item1"])

def itemParse(data):
   for i in data:
   # also tried for i in data.iterkeys():
       # data has type dict while i has type unicode
       print i.get('size')
       # also tried print i['size']

得到了不同的错误,似乎没有任何效果。有什么建议?

  

另外,尝试使用json.loads得到错误期望字符串或缓冲区

2 个答案:

答案 0 :(得分:1)

当您遍历data时,您只能获得密钥。有两种方法可以解决它。

def itemParse(data):
   for i, j in data.iteritems():
       print j.get('size')

def itemParse(data):
   for i in data:
       print data[i].get('size')

答案 1 :(得分:0)

首先,使用json.loads()

data = json.loads(open('path/to/file.json','r').read())

其次,您的for循环应更改为此

for k,v in data.iteritems():
    print data[k]['size']

关于error expect string or buffer,您是否有权读取json文件?