Как мне запросить и обработать JSON с помощью Python?

91

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

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

sa125
источник
2
Могу я попросить вас изменить принятый ответ на ответ с использованием запросов?
webjunkie
Конечно, сегодня я бы так и сделал :)
sa125

Ответы:

130

Для всего, что связано с запросами к URL-адресам, вы можете проверить запросы . В частности, для 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 не дает никакого ответа, но то же самое, когда запускается один за другим на python CLI, работает нормально. любая ошибка, которую я сделал, вставляя его в .py? (ma noob in python)
прайагупд 01
1
Проблема, с которой я сталкиваюсь, заключается в том, что сериализаторы DjangoRestFramework не принимают это как действительный json из-за префикса u перед ключами.
wobbily_col
2
@PrayagUpd старый, и вы, вероятно, узнали об этом, но для всех, кто интересуется этим: в .pyфайле необходимо print(r.json())увидеть ответ.
Антти Хаапала
73

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

import json
import urllib2

data = json.load(urllib2.urlopen('http://someurl/path/to/json'))
Тихий призрак
источник
21
Это старый вопрос, но я хотел присоединиться к webjunkie и указать, что в 2012 году библиотека Requests: HTTP for Humans является потенциально предпочтительным ответом. docs.python-requests.org/en/latest
Питер Хэнли
6
Вам обязательно стоит использовать запросы.
hughdbrown 07
1
Но это по-прежнему полезно, если вы застряли в неэффективной организации, которая затрудняет загрузку библиотек, не являющихся частью стандартной библиотеки
Thruston