我有一個文件,該文件很簡單:基本的Python編碼
# -*- coding: utf-8 -*-
a = u'Alegría'
print a
print {'a': a}
輸出是:
Alegría
{'a': u'Alegr\xeda'}
爲什麼我得到的是不是:提前
Alegría
{'a': u'Alegría'}
謝謝
我有一個文件,該文件很簡單:基本的Python編碼
# -*- coding: utf-8 -*-
a = u'Alegría'
print a
print {'a': a}
輸出是:
Alegría
{'a': u'Alegr\xeda'}
爲什麼我得到的是不是:提前
Alegría
{'a': u'Alegría'}
謝謝
dict
's string r epresentation在鍵和值上調用repr
,並且repr
儘可能地創建一個字符串表示形式,您可以將其粘貼到任何文件或解釋器中,或者聲明一個編碼,然後獲取對象。
你的字符串很好,它只是一個安全表示。
我試圖通過將它序列化到JSON來將它打印到文件中。我想JSON的工作方式與repr類似,因爲我得到了印在文件上的醜陋的{'a':u'Alegr \ xeda'}。你會知道如何將它序列化爲{'a':u'Alegría'}嗎?謝謝 編輯:我想我找到了答案:http://stackoverflow.com/questions/4184108/python-json-dumps-cant-handle-utf-8 – Alex 2013-03-11 23:57:18
JSON不應該包含非ASCII字符,並且字符串python dicts的表示不是有效的JSON。一個帶有'a'和值'Alegría'的JSON對象如下所示:'{「a」:「Alegr \ u00eda」}'。爲什麼你關心的是序列化格式是什麼樣的?你一端是'json.dump',另一端是'json.load',並得到你想要的東西。 – 2013-03-12 00:01:31
我想將字典轉儲到一個文件,然後手工編輯並最終用JavaScript加載。 將它很好地打印在JSON文件中,所以我可以很容易地編輯它,因爲它更具可讀性。 – Alex 2013-03-12 00:11:58
打印字典使用'repr'而不是僅僅打印字符串的原始內容。 – Ryan 2013-03-11 23:37:26