Python3使用unicode单引号保存JSON

2024-04-24 00:17:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道以前在Stackoverflow和其他网站上有人问过这个问题,但我似乎无法使用转义Unicode字符(Python3)保存JSON文件。我读过很多教程

我错过了什么?我试过很多东西,但都不管用。我也尝试过用UTF-8编码/解码,但我显然遗漏了一些东西

为了清楚起见,我已经设法让它适用于其他字符,如l(0439),但我在编码单个引号时遇到了麻烦

如果我有以下命令:

import json
data = {"key": "Test \u0027TEXT\u0027 around"}

我想将它完全保存在一个新的JSON文件中,但不管我做什么,它总是以一个字符结束,这是用Unicode编码的

以下两个块打印完全相同的内容:{“key”:“Test'TEXT'about”}

print(json.dumps(data))
print(json.dumps(data, ensure_ascii=False))

有没有办法保持Unicode字符串的文本?我想把这个字符串作为一个值:“Test\u0027TEXT\u0027 around”


Tags: 文件key字符串testjson编码dataunicode
1条回答
网友
1楼 · 发布于 2024-04-24 00:17:59

您描述的行为与JSON无关。这就是Python3处理字符串的方式。打开shell并写入:

>>> "Test \u0027TEXT\u0027 around"
"Test 'TEXT' around"

如果不希望Python解释特殊字符,则应使用原始字符串(甚至字节序列):

>>> r"Test \u0027TEXT\u0027 around"
'Test \\u0027TEXT\\u0027 around'

参考:

相关问题 更多 >