JSON'u python ile nasıl talep edebilir ve işlerim?


91

Python kullanarak JSON biçiminde veri döndürdüğünü bildiğim bir URL'ye GET isteği göndermeye çalışıyorum.

Bu isteğin nasıl gönderileceğini http://someurl/path/to/jsonve nasıl ayrıştırılacağını bilmek istiyorum - tercihen bir python diktesine.


2
kabul ettiğiniz yanıtı istekleri kullanarak değiştirmenizi rica edebilir miyim?
webjunkie

Elbette, bugün böyle yapardım :)
sa125

Yanıtlar:


130

URL istekleri ile herhangi bir şey için, kontrol etmek isteyebilirsiniz istekleri . Özellikle JSON için:

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

1
onunla çalıştırmak $ python GetJson.py herhangi bir yanıt vermiyor, ancak aynı şey python CLI üzerinde tek tek çalıştırıldığında iyi çalışıyor. a'ya koyarken yaptığım herhangi bir hata .py? (ma noob in python)
duagupd

1
Bununla yaşadığım sorun, DjangoRestFramework serileştiricilerinin, anahtarların önündeki 'u' öneki nedeniyle bunu geçerli json olarak kabul etmemesidir.
wobbily_col

2
@PrayagUpd eski olanı ve muhtemelen onu buldunuz, ancak merak eden herkes için: bir .pydosyada print(r.json())yanıtı görmeniz gerekir .
Antti Haapala

73

Python'un standart kütüphanesi jsonve urllib2modülleri vardır.

import json
import urllib2

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

21
Bu eski bir soru, ancak webjunkie'ye katılmak ve 2012'de istek: İnsanlar için HTTP kütüphanesinin potansiyel olarak tercih edilebilir bir cevap olduğuna işaret etmek istedim. docs.python-requests.org/en/latest
Peter Hanley

6
Kesinlikle istek kullanmalısınız.
hughdbrown

1
Ancak, standart kitaplığın parçası olmayan kitaplıkları yüklemeyi zorlaştıran bilgisiz bir organizasyonda sıkışıp kalırsanız bu yine de yararlıdır
Thruston
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.