दिलचस्प पोस्ट
टंक्रीट में विभिन्न अनुप्रयोगों के बीच सत्र का हिस्सा साझा करने का कोई भी तरीका? android.database.sqlite.SQLiteCantOpenDatabaseException: अज्ञात त्रुटि (कोड 14): डेटाबेस नहीं खोल सका एक से अधिक विशेषता के आधार पर रेल मिलते हैं? यदि कोई मार्कर इंटरफ़ेस में कोई तरीका नहीं है, तो यह कैसे काम करता है? आधुनिक RDBMS पर इनलाइन स्टेटमेंट की तुलना में, सामान्य रूप से संसाधित प्रक्रियाएं अधिक कुशल हैं? वापस बटन फॉर्म डेटा पुनः सबमिट करें ($ _POST) Android SHA1 रिलीज़ कीस्टोर Google मानचित्र के साथ काम नहीं कर रहा है संदर्भ चर वस्तु में शाब्दिक? वस्तु खाली है? ITextSharp के साथ पीडीएफ संपीड़न पायथन में सुंदर मुद्रण XML एंड्रॉइड संपादनटैक्स्ट इशारा एंड्रॉइड: मैं स्क्रीन पर वर्तमान खोला आवेदन नाम कैसे प्राप्त कर सकता हूं रनटाइम चेतावनी: डेटटाइमफ़ील्ड को एक सार्थक तारीख समय मिला एरो ऑपरेटर (->) सी में उपयोग

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

मेरा कोड:

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

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

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

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

Solutions Collecting From Web of "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) 

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