假设这是我必须解析的.JSON文件:
{
"item": {
"allInventory": {
"onHand": 64,
"total": {
"1000": 0,
"1001": 6,
"1002": 5,
"1003": 3,
"1004": 12,
"1005": 0
}
}
},
"image": {
"tag": "/828402de-6cc8-493e-8abd-935a48a3d766_1.285a6f66ecf3ee434100921a3911ce6c.jpeg?odnHeight=450&odnWidth=450&odnBg=FFFFFF"
}
}
我如何打印总值,如:
1000 - 0
1001 - 6
1002 - 5
1003 - 4
1004 - 12
1005 - 0
我已经解析了这些值,但我不确定如何实际打印它们。我已经花了一段时间在此,无法找到解决方案所以任何帮助表示赞赏。这是我到目前为止的代码:
import requests
import json
src = requests.get('https://hastebin.com/raw/nenowimite').json()
stats = src['item']['allInventory']['total']
print(stats)
答案 0 :(得分:0)
你快到了:
for item in stats.items():
print '%d - %d' % item
这样做stats
已经是dict。查看文档,有items
方法返回"字典的(键,值)对列表的副本"。每对格式化为两个数字,即'%d - %d'
。
答案 1 :(得分:0)
这可以通过for循环完成,如下所示:
for key in stats.keys():
print(key, '-', stats[key])
答案 2 :(得分:0)
使用完整的Python 3.6,你可以做到(与Ecir的回答类似)
for key, value in stats.items():
printf(f'{key} - {value}')
但是关于什么是键和值以及使用f-string插值更清楚。
答案 3 :(得分:-1)
您可以尝试:
>>> import json
>>> data= """{
"item": {
"allInventory": {
"onHand": 64,
"total": {
"1000": 0,
"1001": 6,
"1002": 5,
"1003": 3,
"1004": 12,
"1005": 0
}
}
},
"image": {
"tag": "/828402de-6cc8-493e-8abd-935a48a3d766_1.285a6f66ecf3ee434100921a3911ce6c.jpeg?odnHeight=450&odnWidth=450&odnBg=FFFFFF"
}
}"""
>>> data = json.loads(data)
>>> print data["item"]["allInventory"]["total"]
{'1005': 0, '1004': 12, '1003': 3, '1002': 5, '1001': 6, '1000': 0}