Як я запитую та обробляю JSON за допомогою python?


91

Я намагаюся надіслати запит GET на URL-адресу, яка, як мені відомо, повертає дані у формі JSON за допомогою python.

Я хотів би знати, як надіслати цей запит http://someurl/path/to/jsonі як проаналізувати його - бажано до python dict.


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 в python)
prayagupd

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 році бібліотека Запити: HTTP для людей є потенційно бажаною відповіддю. docs.python-requests.org/en/latest
Пітер Хенлі

6
Вам обов’язково слід використовувати запити.
hughdbrown

1
Але це все-таки корисно, якщо ви застрягли в незрозумілій організації, яка ускладнює завантаження бібліотек, які не входять до стандартної бібліотеки
Трустон,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.