2010-05-12 11 views
68

मैं एक यूआरएल को एक जीईटी अनुरोध भेजने की कोशिश कर रहा हूं जिसे मैं पाइथन का उपयोग कर जेएसओएन के रूप में डेटा लौटाता हूं।मैं जेसन को पायथन के साथ कैसे अनुरोध और संसाधित करूं?

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

+1

क्या मैं आपसे अनुरोध करता हूं कि आप अनुरोधों का उपयोग करके अपने स्वीकृत उत्तर को स्विच कर सकें? – webjunkie

+0

निश्चित रूप से, मैं आज इसे कैसे करूँगा :) – sa125

उत्तर

95

यूआरएल के अनुरोध के साथ कुछ भी के लिए आप requests देख सकते हैं। विशेष रूप से 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

इसे '$ पायथन GetJson.py' के साथ चला रहा है [कोई प्रतिक्रिया नहीं देता] [https://github.com/iPrayag/pydown/blob/master/GetJson.py) लेकिन एक ही चीज़ जब एक-एक करके चलती है पायथन सीएलआई ठीक काम करता है.मुझे गलती मैंने इसे '.py' में डालने के दौरान किया था? (माई नोब इन पायथन) – prayagupd

+0

मुझे इस समस्या का सामना करना पड़ रहा है, यह है कि DjangoRestFramework serializers इसे वैध जेसन के रूप में स्वीकार नहीं कर रहे हैं, कुंजी 'कुंजी से पहले उपसर्ग। –

+2

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

68

पायथन की मानक लाइब्रेरी में json और urllib2 मॉड्यूल हैं।

import json 
import urllib2 

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

यह एक पुराना सवाल है, लेकिन मैं वेबजंकी में शामिल होना चाहता था और इंगित करता हूं कि 2012 में लाइब्रेरी अनुरोध: मानव के लिए HTTP संभावित रूप से बेहतर उत्तर है। http://docs.python-requests.org/en/latest/ –

+3

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

संबंधित मुद्दे