मैं अजगर के साथ JSON का अनुरोध और प्रक्रिया कैसे करूं?


91

मैं एक URL पर एक GET अनुरोध भेजने का प्रयास कर रहा हूं जो मुझे पता है कि अजगर के उपयोग से JSON के रूप में रिटर्न डेटा है।

मैं यह जानना चाहूंगा कि इस अनुरोध को कैसे भेजा जाए http://someurl/path/to/json, और इसे पार्स कैसे किया जाए - अधिमानतः एक अजगर तानाशाह को।


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 कोई प्रतिक्रिया नहीं देता है , लेकिन एक ही बात है जब अजगर CLI पर एक के बाद एक को चलाने के काम करता है fine.any गलती मैं जबकि था कि यह एक में डाल .py(अजगर में मा noob)?
prayagupd

1
इसके साथ जो समस्या मुझे आ रही है, वह यह है कि DjangoRestFramework सीरियलाइजर्स इसे कुंजी के रूप में 'u' उपसर्ग के कारण मान्य json के रूप में स्वीकार नहीं कर रहे हैं।
wobbily_col

2
@PrayagUpd पुराना है, और आपको संभवतः यह पता चला है, लेकिन किसी और को इसके बारे में सोचकर: प्रतिक्रिया देखने के लिए एक .pyफ़ाइल में print(r.json())देखने की आवश्यकता है ।
एंटटी हापाला

73

पायथन के मानक पुस्तकालय में jsonऔर urllib2मॉड्यूल हैं।

import json
import urllib2

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

21
यह एक पुराना प्रश्न है, लेकिन मैं वेबजंकी से जुड़ना चाहता था और 2012 में यह कहना चाहता था कि लाइब्रेरी रिक्वेस्ट: एचटीटीपी फॉर ह्यूमन एक संभावित बेहतर जवाब है। docs.python-requests.org/en/latest
पीटर

6
आपको निश्चित रूप से अनुरोधों का उपयोग करना चाहिए।
हुग्डब्रोर्न '

1
लेकिन यह अभी भी उपयोगी है यदि आप एक ऐसे घनिष्ठ संगठन में फंस गए हैं जो पुस्तकालयों को लोड करना मुश्किल बनाता है जो मानक पुस्तकालय का हिस्सा नहीं हैं
थ्रस्टोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.