在Python中打印解析的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 } } },

假设这是我必须解析的.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)
你就快到了:

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}')