2015-06-18 7 views
-3

Привет, я возвращаю данные json и хотел бы получить пары ключей, значений, но я не смог этого сделать. Я работаю с python 3.4 и Django 1.8. Кто-нибудь, пожалуйста, помогите мне получить ключи, пары значений?django get json values ​​

, например, я хотел бы получить доступ ко всем значениям в стоимости только от page_fans_add_unique

r = requests.get('https://graph.facebook.com/v2.3/some/insights?access_token='+access_token.token) 

content = r.json 

get {'paging': {'next': 'https://graph.facebook.com/v2.3/some/insights?access_token=&since=1434458194&until=1434717394', 'previous': 'https://graph.facebook.com/v2.3/some/insights?access_token=&since=1433939794&until=1434198994'}, 


{ 
    "data": [ 
    { 
     "id": "511524265623184/insights/page_fan_adds_unique/day", 
     "name": "page_fan_adds_unique", 
     "period": "day", 
     "values": [ 
     { 
      "value": 2, 
      "end_time": "2015-06-14T07:00:00+0000" 
     }, 
     { 
      "value": 4, 
      "end_time": "2015-06-15T07:00:00+0000" 
     }, 
     { 
      "value": 4, 
      "end_time": "2015-06-16T07:00:00+0000" 
     } 
     ], 
     "title": "Daily New Likes", 

    }, 
+2

Пожалуйста, форматировать код, оберточная минимизируется. – Brandon

+0

Какие ключи? Какие значения? – Brandon

+0

Ну, я хотел бы получить доступ к фактическим данным, значениям внутри значения и поместить их в новую переменную – dk1990

ответ

2

Во-первых, вам нужно позвонить r.json() фактически возвращает значение. Если Вы желаете, чтобы перебирать клавиши data:

for data in content.get('data'): 
    for k, v in data.items(): 
     if k == 'values': 
      try: 
       print(data[k][0]) 
      except KeyError: 
       print('Nothing') 

Пример вывода из моего терминала приведены ваши данные:

>>> content = { 
... "data": [ 
...  { 
...  "id": "511524265623184/insights/page_fan_adds_unique/day", 
...  "name": "page_fan_adds_unique", 
...  "period": "day", 
...  "values": [ 
...   { 
...   "value": 2, 
...   "end_time": "2015-06-14T07:00:00+0000" 
...   }, 
...   { 
...   "value": 4, 
...   "end_time": "2015-06-15T07:00:00+0000" 
...   }, 
...   { 
...   "value": 4, 
...   "end_time": "2015-06-16T07:00:00+0000" 
...   } 
...  ], 
...  "title": "Daily New Likes" 
...  } 
... ] 
... } 
>>> for data in content.get('data'): 
... for k, v in data.items(): 
...  if k == 'values': 
...  print(data[k][0]) 
... 
{'end_time': '2015-06-14T07:00:00+0000', 'value': 2} 
+1

Пробовал это и получил AttributeError в/ . Объект 'function' no attribute 'get' – dk1990

+0

Если 'content' является словарем, это должно работать. В противном случае, пожалуйста, обновите код своего вопроса точно, что такое 'content'. – Brandon

+0

'request.json()' это метод, а не атрибут. ОП устанавливает «контент» равным ссылке на метод, а не результаты его вызова. – IanAuld