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'
参考:
我知道之前在 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'
参考: