क्या पायथन का उपयोग करके RESTful सेवा से JSON डेटा प्राप्त करने का कोई मानक तरीका है?
मुझे प्रमाणीकरण के लिए केर्बोरस का उपयोग करने की आवश्यकता है।
कुछ स्निपेट मदद करेगा।
क्या पायथन का उपयोग करके RESTful सेवा से JSON डेटा प्राप्त करने का कोई मानक तरीका है?
मुझे प्रमाणीकरण के लिए केर्बोरस का उपयोग करने की आवश्यकता है।
कुछ स्निपेट मदद करेगा।
जवाबों:
कुछ इस तरह से काम करना चाहिए जब तक कि मैं बिंदु को याद नहीं कर रहा हूँ:
import json
import urllib2
json.load(urllib2.urlopen("url"))
मैं अनुरोध पुस्तकालय को इसके लिए प्रयास करूंगा । अनिवार्य रूप से मानक पुस्तकालय मॉड्यूल (यानी urllib2, CANplib2, आदि) के आसपास रैपर का उपयोग करने के लिए बस एक बहुत आसान है आप उसी चीज के लिए उपयोग करेंगे। उदाहरण के लिए, एक url से json डेटा प्राप्त करने के लिए जिसे मूल प्रमाणीकरण की आवश्यकता होती है वह इस तरह दिखाई देगा:
import requests
response = requests.get('http://thedataishere.com',
auth=('user', 'password'))
data = response.json()
Kerberos प्रमाणीकरण के लिए अनुरोध परियोजना में reqests-kerberos पुस्तकालय है जो एक kerberos प्रमाणीकरण वर्ग प्रदान करता है जिसे आप अनुरोधों के साथ उपयोग कर सकते हैं :
import requests
from requests_kerberos import HTTPKerberosAuth
response = requests.get('http://thedataishere.com',
auth=HTTPKerberosAuth())
data = response.json()
requests
मॉड्यूल को याद कर रहे हैं , तो बस करें pip install requests
:। अधिक जानकारी और डॉक्स यहाँ
आपको मूल रूप से सेवा के लिए HTTP अनुरोध करने की आवश्यकता है, और फिर प्रतिक्रिया के मुख्य भाग को पार्स करें। मैं इसके लिए CANplib2 का उपयोग करना पसंद करता हूं:
import httplib2 as http
import json
try:
from urlparse import urlparse
except ImportError:
from urllib.parse import urlparse
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=UTF-8'
}
uri = 'http://yourservice.com'
path = '/path/to/resource/'
target = urlparse(uri+path)
method = 'GET'
body = ''
h = http.Http()
# If you need authentication some example:
if auth:
h.add_credentials(auth.user, auth.password)
response, content = h.request(
target.geturl(),
method,
body,
headers)
# assume that content is a json reply
# parse content with the json module
data = json.loads(content)
यदि आप पायथन 3 का उपयोग करना चाहते हैं, तो आप निम्नलिखित का उपयोग कर सकते हैं:
import json
import urllib.request
req = urllib.request.Request('url')
with urllib.request.urlopen(req) as response:
result = json.loads(response.readall().decode('utf-8'))
वैसे सबसे पहले मुझे लगता है कि इस समाधान के लिए आपको अपना स्वयं का समाधान रोल करना होगा। वैसे भी आपको जेनेरिक रीस्ट क्लाइंट को इसकी जाँच करने की आवश्यकता होती है।
https://github.com/scastillo/siesta
हालाँकि मुझे लगता है कि लाइब्रेरी का फीचर सेट अधिकांश वेब सेवाओं के लिए काम नहीं करेगा क्योंकि वे शायद ओउथ आदि का उपयोग कर रहे हैं। इसके अलावा मुझे यह भी पसंद नहीं है कि यह कैनप्लिब के ऊपर लिखा गया है जो कि एक दर्द के रूप में है।