2017-02-09 3 views
0

Я в настоящее время делает АНИ вызов Паровой Web API, который получает ответ JSON, который выглядит следующим образом:Python создать словарь из 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']) 

Но это только что создало диктовку «даты» «всего».

Как я могу создать dict только значений?

+0

Чтобы очистить, я хочу создать dict с отметкой времени в первом столбце и количеством во втором. –

+1

С отметкой времени * как ключ * и сумма * как значение * ...? – deceze

ответ

5

Вы можете получить значения и сделать словарь из него,

Это то, что вы можете сделать

Код

d = data['response']['globalstats']['heist_success']['history'] 
result_dict = dict((i["date"],i["total"]) for i in d) 

Вы можете также использовать dict comprehension при использовании питона версии 2.7 или выше

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

Выход

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

Отлично! Работал как шарм. Спасибо за помощь! –

+0

Извините, но я не могу с тех пор, как я получил менее 15 рецентов:/ –

+0

Не видел, что ... Готово! –

2

Вы можете использовать Dict понимание:

D = {h['date']:h['total'] for h in data['response']['globalstats']['heist_success']['history']} 

for будет перебирать список dicts в истории и дате и сумме выбраны в качестве ключа и значения.

Смежные вопросы