2012-02-08 17 views
18

मैं साउंडक्लाउड एपीआई से JSON जानकारी को पार्स करने के लिए एक पायथन लिपि लिख रहा हूं, और मैं बस सोच रहा था कि "यू" क्या है जब मैं json.loads (val) का उपयोग करता हूं और JSON जानकारी को कैसे स्टोर करता हूं आप के बिना वस्तु?जब मैं json.loads का उपयोग करता हूं तो आप क्या हैं?

अर्थात क्यों देखते हैं यू इस में है:

>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') 
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}] 

"डिकोडिंग JSON" अनुभाग यहाँ समझने के लिए मैं आगे मतलब देखें:

http://docs.python.org/library/json.html

धन्यवाद!

+0

एक अन्य उपयोगी पोस्ट: http://stackoverflow.com/questions/13940272/अजगर-json-भार-रिटर्न आइटम-लगाकर-यू के साथ –

उत्तर

15

यूनिकोड तार। Python Tutorial देखें।

पायथन स्रोत कोड में, यूनिकोड अक्षर को 'यू' या 'यू' चरित्र: u'abcdefghijk 'के साथ उपसर्ग के रूप में लिखा जाता है।

- Unicode Literals in Python Source Code

7

u' रों वहाँ संकेत मिलता है कि एक यूनिकोड स्ट्रिंग बनाया जा माना जाता है कर रहे हैं।

यह बेकार है कि json.dump यूनिकोड तार करने के लिए तार धर्मान्तरित और किया होने का कोई निशान छोड़ देता है, क्योंकि तब json.load वापस नहीं बदल सकते।

स्ट्रिंग वस्तुओं के लिए बदलने के लिए, का उपयोग PyYAML:

>>> import yaml 
>>> yaml.load('["foo", {"bar":["baz", null, 1.0, 2]}]') 
>>> ['foo', {'bar': ['baz', None, 1.0, 2]}] 

लेकिन सावधान! किसी कारण से आप json.dump एक वस्तु वस्तु तार और यूनिकोड स्ट्रिंग से युक्त एड, तो yaml वस्तु तारों के रूप में सब कुछ लोड होगा (हालांकि कि json.dump की गलती वास्तव में है)

संबंधित मुद्दे

 संबंधित मुद्दे