在Python中打印解析的JSON
假设这是我必须解析的.JSON文件:在Python中打印解析的JSON,python,json,python-3.x,Python,Json,Python 3.x,假设这是我必须解析的.JSON文件: { "item": { "allInventory": { "onHand": 64, "total": { "1000": 0, "1001": 6, "1002": 5, "1003": 3, "1004": 12, "1005": 0 } } },
{
"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)
你就快到了:
for item in stats.items():
print '%d - %d' % item
这样做的目的是stats
已经是一个问题。查看文档,有items
方法返回“字典(键、值)对列表的副本”。每对都被格式化为两个数字,即'%d-%d'
您可以尝试:
>>> 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}
这可以通过for循环完成,如下所示:
for key in stats.keys():
print(key, '-', stats[key])
使用完整的Python3.6您可以做到(与Ecir的答案类似)
但是更清楚地知道什么是键和值,并使用f字符串插值。您的问题到底是什么?你已经在打印你想要的了,对吧?
for key, value in stats.items():
printf(f'{key} - {value}')