无法写入带有utf8字符的文本文件

时间:2019-03-20 17:25:55

标签: python json python-2.7 file text

我正在尝试保存一个包含áàã等字符的文本文件。但是,我目前无法使用,并且无法使其与我在互联网上看到的内容一起使用。

我当前的代码是:

# -*- coding: utf-8 -*-

import codecs
import json

test_dict = {'name': [u'Joe', u'Doe'], 'id': u'1:2:3', 'description': u'he w\xe1','fav': [1, 2]}
final_text = line = "- " + json.dumps(test_dict) + "\n"

filename = 'C:\Users\PLUX\Desktop\data.txt'
f = codecs.open(filename,'w','utf8')
f.write(line)

输出:

- {"description": "he w\u00e1", "fav": [1, 2], "name": ["Joe", "Doe"], "id": "1:2:3"}

我希望它输出:

- {"description": "he wá", "fav": [1, 2], "name": ["Joe", "Doe"], "id": "1:2:3"}

请任何人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

+---+-----+---------+ | id|value| result| +---+-----+---------+ | 0| -1.0|-Infinity| | 1| 0.0| 0.0| | 2| 0.5| 0.001| | 3| 1.0| 1.0| | 4| 10.0| 10.0| | 5| 25.0| 20.0| | 6|100.0| 100.0| | 7|300.0| 100.0| +---+-----+---------+ 是该字符的Unicode换码版本。加载数据时,json模块会将其转换回预期的表示形式。

如果您确实要在文件中使用无上限版本,请将\u00e1传递到ensure_ascii=False

json.dumps

要写入文件,请执行以下操作:

>>> print json.dumps(test_dict, ensure_ascii=False)
{"description": "he wá", "fav": [1, 2], "name": ["Joe", "Doe"], "id": "1:2:3"}

请注意,由于我不希望Python 2“有帮助地”将结果转换为字节串,因此我已明确标记了要串联为unicode的字符串。