Pytanie Jak mogę zażądać i przetworzyć JSON z pythonem?


Próbuję wysłać żądanie GET do adresu URL, który wiem, zwraca dane w formie JSON przy użyciu Pythona.

Chciałbym wiedzieć, jak wysłać tę prośbę do http://someurl/path/to/jsoni jak go przetworzyć - najlepiej na python dict.


76
2018-05-12 09:28


pochodzenie


Czy mogę prosić o zmianę zaakceptowanej odpowiedzi na tę, która korzysta z wniosków? - webjunkie
Jasne, tak bym to zrobił dzisiaj :) - sa125


Odpowiedzi:


Cokolwiek z prośbami o adresy URL możesz chcieć sprawdzić upraszanie. W szczególności dla JSON:

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

104
2017-09-13 08:22



z uruchomieniem $ python GetJson.py  nie daje żadnej odpowiedzi ale to samo, gdy uruchamiane jeden po drugim na Pythonie CLI działa dobrze.Niepoprawny zrobiłem podczas umieszczania go w .py? (m noob w python) - prayagupd
Problem z tym związany polega na tym, że serializery DjangoRestFramework nie akceptują tego jako prawidłowego json, ze względu na prefiks "u" przed kluczami. - wobbily_col
@PrayagUpd stary i prawdopodobnie go znalazłeś, ale dla każdego, kto się nad tym zastanawia: w a .py plik musi print(r.json()) aby zobaczyć odpowiedź. - Antti Haapala


Standardowa biblioteka Pythona ma json i urllib2 moduły.

import json
import urllib2

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

70
2018-05-12 09:35



To stare pytanie, ale chciałem dołączyć do webjunkie i wskazać, że w 2012 r. Prośba o bibliotekę: HTTP for Humans jest potencjalnie najlepszą odpowiedzią. docs.python-requests.org/en/latest - Peter Hanley
Powinieneś zdecydowanie używać wniosków. - hughdbrown