मैं JSON अनुरोधों की जांच के लिए स्वचालित परीक्षण लिखने की कोशिश कर रहा हूं। इसलिए जब मैं निम्नलिखित कोड चलाता हूं तो मुझे एक ट्रेसबैक त्रुटि मिल रही है:
json1=query_link1.json
json2 = json.loads(json1)
अपवाद:
Traceback (most recent call last):
File "Productapicheck.py", line 45, in <module>
query_product_api()
File "Productapicheck.py", line 34, in query_product_api
json2 = json.loads(json1)
File "/usr/lib/python2.6/json/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
उत्तर:
जवाब के लिए 2 № 1अगर query_link1.json
एक फ़ाइल जैसी वस्तु है, आपको इसका उपयोग करने की आवश्यकता है json.load()
इसके बजाए कार्य करें।
.loads()
(साथ में s
अंत में) की आवश्यकता है कि आप एक स्ट्रिंग में गुजरते हैं और query_link1.json
है नहीं एक स्ट्रिंग।
यदि आप इसका उपयोग कर रहे हैं requests
पुस्तकालय, तो आप करते हैं नहीं डिकोड करने की आवश्यकता है .json
जब आप उस विशेषता को एक्सेस करते हैं, तो एक प्रतिक्रिया पर यह आपके लिए लाइब्रेरी द्वारा स्वचालित रूप से डिकोड किया जाता है।