Python3 使用 unicode 单引号保存 JSON

Python3 saving JSON with unicode single quote

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

我错过了什么?我尝试了很多东西,但没有任何效果。我也在 UTF-8 中尝试过 encoding/decoding,但我显然遗漏了一些东西。

需要说明的是,我已经设法使其适用于其他字符,例如 й (0439),但我在对单引号进行编码时遇到了问题..

如果我有以下字典:

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

我想将它原封不动地保存在新的 JSON 文件中,但无论我做什么,它总是以单个字符结束,这是用 Unicode 编码的字符。

以下 2 个块打印完全相同的内容:{"key": "Test 'TEXT' around"}。

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

有什么方法可以保留 Unicode 字符串文字吗?我想将该字符串作为值:"Test \u0027TEXT\u0027 around"

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

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

如果您不想 Python 解释特殊字符,您应该使用原始字符串(甚至可能是字节序列):

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

参考: