दिलचस्प पोस्ट
कैसे एक स्ट्रिंग को जावा में एक int में कनवर्ट करने के लिए? विवरण विशेषता से एन्यूम प्राप्त करें छवि को एक गतिविधि से दूसरी गतिविधि से पास करना बहुत बड़ी टेक्स्ट फ़ाइल की अंतिम 10 लाइनें प्राप्त करें> 10 जीबी इसका अर्थ यह है कि वैश्विक नामस्थान प्रदूषित होगा? कैसे पृष्ठभूमिवर्कर के साथ जीयूआई अपडेट करें? बेस64 जावा सांकेतिक शब्दों में बदलना और एक स्ट्रिंग डीकोड यह जांच कैसे करें कि कोई संख्या 2 की शक्ति है या नहीं जावा या सी # में एकाधिक वंशानुक्रम की अनुमति क्यों नहीं है? सूची की समझ कैसे काम करता है की व्याख्या? ECMAScript6 तीर फ़ंक्शन जो एक ऑब्जेक्ट देता है पुनरावर्ती फ़ंक्शन जिससे स्टैक अतिप्रवाह हो फ़ंक्शन संकेतक के माध्यम से C ++ क्लास विधियों को कॉल करना सी में एक variadic फ़ंक्शन का आवेश अग्रेषित करें विंडोज संस्करण में नेट का पता लगाएं

JSON में सिंगल बनाम डबल कोट्स

मेरा कोड:

import simplejson as json s = "{'username':'dfdsfdsf'}" #1 #s = '{"username":"dfdsfdsf"}' #2 j = json.loads(s) 

#1 परिभाषा गलत है

#2 परिभाषा सही है

मुझे सुना गया था कि पायथन में कि एकल डबल उद्धरण अंतर-मिलान योग्य हो सकता है, क्या कोई मेरे लिए यह समझा सकता है?

वेब के समाधान से एकत्रित समाधान "JSON में सिंगल बनाम डबल कोट्स"

JSON वाक्यविन्यास पायथन वाक्यविन्यास नहीं है JSON को इसकी स्ट्रिंग्स के लिए दोहरे उद्धरण की आवश्यकता है।

आप ast.literal_eval() उपयोग कर सकते हैं

 >>> import ast >>> s = "{'username':'dfdsfdsf'}" >>> ast.literal_eval(s) {'username': 'dfdsfdsf'} 

आप डबल कोट के साथ JSON को डंप कर सकते हैं:

 from json import dumps #mixing single and double quotes data = {'jsonKey': 'jsonValue',"title": "hello world"} jsonString = json.dumps(data) #get string with all double quotes 

बुरा JSON वाक्यविन्यास की समस्या को हल करने के लिए demjson भी एक अच्छा पैकेज है:

 pip install demjson 

उपयोग:

 from demjson import decode bad_json = "{'username':'dfdsfdsf'}" python_dict = decode(bad_json) 

संपादित करें:

demjson.decode क्षतिग्रस्त demjson.decode लिए एक महान उपकरण है, लेकिन जब आप ast.literal_eval डेटा के बड़े amourt के साथ काम कर रहे हैं ast.literal_eval एक बेहतर मिलान है और बहुत तेज़ है।

जैसा कि कहा, JSON पायथन वाक्यविन्यास नहीं है। आपको JSON में दोहरे उद्धरण चिह्नों का उपयोग करने की आवश्यकता है। प्रोग्रामर संज्ञानात्मक अधिभार को कम करने के लिए स्वीकार्य सिंटैक्स के सख्त सबसेट्स का उपयोग करने के लिए इसकी निर्माता (इन-) प्रसिद्ध है।

यह जानना वास्तव में उपयोगी है कि JSON स्ट्रिंग में कोई एकल उद्धरण नहीं है। कहो, आपने उसे ब्राउजर कंसोल से कॉपी और चिपकाया / जो कुछ भी उसके बाद, आप बस टाइप कर सकते हैं

 a = json.loads('very_long_json_string_pasted_here') 

यह अन्यथा तोड़ सकता है अगर यह सिंगल उद्धरणों का उपयोग करता है, भी।

 import json data = json.dumps(list) print(data) 

उपरोक्त कोड स्निपेट काम करना चाहिए।