Expecting value: line 1 column 1 (char 0)
JSON को डिकोड करने की कोशिश करते समय मुझे त्रुटि हो रही है ।
एपीआई कॉल के लिए मैं जिस URL का उपयोग करता हूं वह ब्राउज़र में ठीक काम करता है, लेकिन कर्ल अनुरोध के माध्यम से यह त्रुटि देता है। निम्नलिखित कोड मैं कर्ल अनुरोध के लिए उपयोग करता हूं।
पर त्रुटि होती है return simplejson.loads(response_json)
response_json = self.web_fetch(url)
response_json = response_json.decode('utf-8')
return json.loads(response_json)
def web_fetch(self, url):
buffer = StringIO()
curl = pycurl.Curl()
curl.setopt(curl.URL, url)
curl.setopt(curl.TIMEOUT, self.timeout)
curl.setopt(curl.WRITEFUNCTION, buffer.write)
curl.perform()
curl.close()
response = buffer.getvalue().strip()
return response
पूर्ण ट्रैसबैक:
वापस ट्रेस करें:
File "/Users/nab/Desktop/myenv2/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/Users/nab/Desktop/pricestore/pricemodels/views.py" in view_category
620. apicall=api.API().search_parts(category_id= str(categoryofpart.api_id), manufacturer = manufacturer, filter = filters, start=(catpage-1)*20, limit=20, sort_by='[["mpn","asc"]]')
File "/Users/nab/Desktop/pricestore/pricemodels/api.py" in search_parts
176. return simplejson.loads(response_json)
File "/Users/nab/Desktop/myenv2/lib/python2.7/site-packages/simplejson/__init__.py" in loads
455. return _default_decoder.decode(s)
File "/Users/nab/Desktop/myenv2/lib/python2.7/site-packages/simplejson/decoder.py" in decode
374. obj, end = self.raw_decode(s)
File "/Users/nab/Desktop/myenv2/lib/python2.7/site-packages/simplejson/decoder.py" in raw_decode
393. return self.scan_once(s, idx=_w(s, idx).end())
Exception Type: JSONDecodeError at /pricemodels/2/dir/
Exception Value: Expecting value: line 1 column 1 (char 0)
simplejson
जब आप सिर्फ stdlib का उपयोग कर सकते हैं json
(जो कि उसी पुस्तकालय के रूप में हैsimplejson
) का उपयोग क्यों करें ?
web_fetch()
कॉल विफल रही।
pycurl
। requests
एक आसान एपीआई प्रदान करता है, खासकर जब यह डीबग करने की बात आती है कि क्या चल रहा है। जब तक आपके पास विशेष रूप से simplejson
पुस्तकालय का एक नया संस्करण होना चाहिए , बस के साथ रहना json
, आपको प्रबंधन करने के लिए एक निर्भरता बचाता है।
response_json
वापसी मूल्य क्या है .json()
? तब आपके पास पहले से डेटा डिकोड हो चुका है और json.loads()
अब और उपयोग करने की आवश्यकता नहीं है। response
इसे आपके लिए डिकोड किया गया।
print repr(response_json)
आपको बताता है कि आप को पारित किया जा रहा है.loads()
?