2010-05-12 2 views
68

Я пытаюсь отправить запрос GET на URL-адрес, который, как я знаю, возвращает данные в форме JSON с использованием python.Как запросить и обработать JSON с помощью python?

Я хотел был бы знать как послать этот запрос к http://someurl/path/to/json, и как разобрать его - предпочтительно к python dict.

+1

Могу ли я попросить вас принять принятый ответ на тот, который использует запросы? – webjunkie

+0

Конечно, вот как я это сделал сегодня :) – sa125

ответ

95

Для чего-либо с запросами на URL-адреса, вы можете проверить requests. В частности, для JSON:

>>> import requests 
>>> r = requests.get('https://github.com/timeline.json') 
>>> r.json() 
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/... 
+1

работает с '$ python GetJson.py' [не дает ответа] (https://github.com/iPrayag/pydown/blob/master/GetJson.py), но то же самое, когда вы запускаете один за другим на python CLI работает отлично. Любая ошибка, которую я делал, помещая ее в '.py'? (ma noob в python) – prayagupd

+0

Проблема, с которой я столкнулся, заключается в том, что сериализаторы DjangoRestFramework не принимают это как действительный json, u 'перед ключами. –

+2

@PrayagUpd старый, и вы, вероятно, его нашли, но для кого-то еще интересующегося: в файле '.py' нужно' print (r.json()) 'видеть ответ. –

68

Стандартная библиотека Python имеет модули json и urllib2.

import json 
import urllib2 

data = json.load(urllib2.urlopen('http://someurl/path/to/json')) 
+14

Это старый вопрос, но я хотел присоединиться к webjunkie и указать, что в 2012 году запросы библиотеки: HTTP для людей - потенциально предпочтительный ответ. http://docs.python-requests.org/en/latest/ –

+3

Вы должны обязательно использовать запросы. – hughdbrown

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