用Python从JSON值创建字典

3

我目前使用 Steam Web API 进行 API 调用,获取的 JSON 响应如下:

{
"response": {
    "globalstats": {
        "heist_success": {
            "total": "58932654920",
            "history": [
                {
                    "date": 1486252800,
                    "total": "696574"
                },
                {
                    "date": 1486339200,
                    "total": "357344"
                },
                {
                    "date": 1486425600,
                    "total": "356800"
                },
                {
                    "date": 1486512000,
                    "total": "311056"
                }
            ]

        }
    },
    "result": 1
}

日期是Unix时间戳,总数是一个金额。我想要做的是从日期和时间的值创建一个字典,而不是名称。我尝试使用以下代码:
dict = dict(data['response']['globalstats']['heist_success']['history'])

但这只创建了一个"日期" "总数"的字典。 我该如何创建一个仅包含值的字典?

澄清一下,我想创建一个字典,第一列是时间戳,第二列是金额。 - Samuel Leberto
1
以时间戳作为键,以金额作为值...? - deceze
2个回答

8
你可以获取这些值并将其制作成字典,
以下是你可以执行的操作: 代码
d = data['response']['globalstats']['heist_success']['history']
result_dict = dict((i["date"],i["total"]) for i in d)

如果您使用的是Python版本2.7或以上,您也可以使用字典推导式(dict comprehension)

result_dict = {i["date"]:i["total"]  for i in d}

输出

{1486252800: '696574',
 1486339200: '357344',
 1486425600: '356800',
 1486512000: '311056'}

1
太完美了!像魔法一样好用。感谢你的帮助! - Samuel Leberto
抱歉,我不能这样做,因为我的声望不到15分:/ - Samuel Leberto
没看到...完成了! - Samuel Leberto

2
你可以使用字典推导式:
```python ```
D = {h['date']:h['total'] for h in data['response']['globalstats']['heist_success']['history']}
for会遍历history和date中的字典列表,将key为date和total的值作为选择项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接