我用django進行編程,我需要序列化一個對象到一個字符串,但我需要得到字符串/序列化。Simplejson轉儲char
一個例子:
simplejson.dumps({ 'ID': '根/葉'})
我需要這樣的輸出:
「{ 「ID」:「根/葉「}」
,但我得到這樣的:
'{ 」ID「: 」根葉\\\\「}'
比k你!
PD:對不起,我的英語:-P
我用django進行編程,我需要序列化一個對象到一個字符串,但我需要得到字符串/序列化。Simplejson轉儲char
一個例子:
simplejson.dumps({ 'ID': '根/葉'})
我需要這樣的輸出:
「{ 「ID」:「根/葉「}」
,但我得到這樣的:
'{ 」ID「: 」根葉\\\\「}'
比k你!
PD:對不起,我的英語:-P
JSON要求字面\
轉義,並表示爲\\
。 Python也代表字面\
字符轉義,如\\
。在他們之間,\
變成\\\\
。
注意在Python如下:
>>> "\\/" == "\/"
True
>>> {"id": "root\/leaf"} == {"id": "root\\/leaf"}
True
>>> {"id": "root\\/leaf"}["id"]
'root\\/leaf'
>>> print {"id": "root\\/leaf"}["id"]
root\/leaf
Python是打印額外逃逸。所以當你做simplejson.dumps({"id": "root\/leaf"})
時,python會輸出正確的結果{'id': 'root\\/leaf'}
,但是有了額外的Python轉義,因此{'id': 'root\\\\/leaf'}
。 Python將每個\\
視爲單個字符。如果你寫入文件而不是字符串,你會得到{'id': 'root\\/leaf'}
。
編輯:我想補充,文字的JSON {"id": "root\/leaf"}
將解碼爲{'id': 'root/leaf'}
,爲文本JSON \/
映射到/
字符。 \/
和/
均爲有效的/
的JSON編碼;似乎沒有一種簡單的方法可以使簡單字符使用\/
而不是/
來編碼/
。