2012-08-15 45 views
1

有沒有辦法將Unicode字符串保存爲JSON,以允許將Unicode代碼點替換爲其實際字符?如何將Unicode代碼點保存爲字符,而不是Python中的代碼點

例如,具有這樣的移植到JSON的字典...:

dict1[u'N\u00e1utico'] = 2 

...而不是讓它與編碼點傾倒,可以在關鍵傾倒的實際字符串?:

Náutico 

打印工作正常表示字符,但節省了我只是失去了。謝謝。

+2

更重要的問題是JSON是否允許這樣做,誰應該讀取JSON輸出來支持它。 – delnan 2012-08-15 21:31:09

+0

這將被移植到一個數據庫,然後使用網上最有可能 – user1549620 2012-08-15 22:31:36

回答

4

寫入JSON是要提供一種用於落在標準ASCII範圍之外的字符unicode的碼點,並且可以讀取JSON(包括瀏覽器)任何庫要正確顯示它的任何庫。我不確定爲什麼你認爲當字符串用JSON表示時你需要重音字符,但是你不應該,並且作爲提供代碼點的交換格式是正確的行爲。

+2

有可讀的JSON可能是方便進行調試,但作爲交換格式我相信它的目的是要承擔非ASCII字符可以在運輸過程中被破壞的地方。 – 2012-08-15 21:49:17

+0

這最終會將JSON移植到最有可能在線使用的數據庫。我只是想知道是否有可能的方式,否則將取決於任何輸出者能夠正確讀取它。你的解釋在這方面真的很有幫助,謝謝! – user1549620 2012-08-15 22:23:13

1

你的意思是包含非ASCII字符作爲原始字符,而不是等效的\u轉義?如果是這樣的話:

>>> print json.dumps({u'N\u00e1utico': 2}, ensure_ascii= False) 
{"Náutico": 2} 
+0

這也是一個很好的答案,並且爲了便於調試,它值得了解。對於他所描述的用例,儘管他確實不需要原始值。任何有價值的網絡應用程序或瀏覽器都會在需要時加載並正確顯示它。 – 2012-08-16 01:57:58

相關問題