我有一个文件,该文件很简单:基本的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