我尝试使用本地存储的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得到错误期望字符串或缓冲区
答案 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文件?