python 字典中有中文写入文件后变成编码
coding:utf-8
import codecs
fp = codecs.open('test.txt', 'w', 'UTF-8')
a = [{'name': '北京', 'zone': 10}, {'name': '重庆', 'zone': 20}]
fp.write(str(a))
fp.close()
cat test.txt
[{'name': '\xe5\x8c\x97\xe4\xba\xac', 'zone': 10}, {'name': '\xe9\x87\x8d\xe5\xba\x86', 'zone': 20}]
如何让中文写入文件后依然是中文呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你需要借助于python的json模块处理数据的dump操作;
结果如下:
修改你操作系统的文件编码
其实你在第3行后,保存的就是cat后的结果,如下:
import codecs
fp = codecs.open('test.txt', 'w', 'UTF-8')
a = [{'name': '北京', 'zone': 10}, {'name': '重庆', 'zone': 20}]
print a
'\xe5\x8c\x97\xe4\xba\xac',控制台信息输出窗口按照ascii编码输出utf8编码的字符串的结果。
你尝试调整你虚拟终端的显示编码看看
import sys
sys.setdefaultencoding("utf-8")
a = [{'name': u'北京', 'zone': 10}, {'name': u'重庆', 'zone': 20}]
这样试试看。
不能直接写呀,你需要dump你的字典,看楼上的json方案