मुझे एक दूरस्थ सर्वर से एक json ऑब्जेक्ट मिल रहा है, और इसे इस तरह से अजगर स्ट्रिंग में परिवर्तित करना है:
a = eval(response)
क्या यह किसी भी तरह से बेवकूफ है, या मेरे पास एक बेहतर विकल्प है?
उत्तर:
उत्तर № 1 के लिए 13का उपयोग करते हुए eval
JSON को संसाधित करने का एक अच्छा तरीका नहीं है:
JSON इस वजह से भी मान्य अजगर नहीं है
true
,false
, तथाnull
.eval
पाइथॉन कोड को निष्पादित करेगा, जिससे आप कोड के दुर्भावनापूर्ण इंजेक्शन की दया पर हैं
उपयोग json
इसके बजाय मानक पुस्तकालय में उपलब्ध मॉड्यूल:
import json
data = json.loads("[1, 2, 3]")
यदि आप "2.6 से अधिक पुराने पायथन के संस्करण का उपयोग कर रहे हैं, तो आपको मॉड्यूल को स्वयं डाउनलोड करना होगा।" इसे कहते हैं simplejson
और हो सकता है PyPi से डाउनलोड किया गया.
जवाब के लिए 2 № 2
हाँ बहुत। इसके बजाय एक json डिकोडर का उपयोग करें:
>>> from simplejson import loads
>>> loads(response)