python - Python3 用 unicode 单引号保存 JSON
问题描述
我知道之前在 Stackoverflow 和其他网站上已经问过这个问题,但我似乎无法使用转义的 Unicode 字符(Python3)保存 JSON 文件。我已经阅读了很多教程。
我错过了什么?我尝试了很多东西,但没有任何效果。我也尝试过在 UTF-8 中编码/解码,但我显然遗漏了一些东西。
为了清楚起见,我已经设法让它适用于其他字符,如 © (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 处理字符串的简单方式。打开外壳并写入:
>>> "Test \u0027TEXT\u0027 around"
"Test 'TEXT' around"
如果您不希望 Python 解释特殊字符,则应使用原始字符串(甚至可能是字节序列):
>>> r"Test \u0027TEXT\u0027 around"
'Test \\u0027TEXT\\u0027 around'
参考:
推荐阅读
- c++ - 如何使用 OpenImageIO 和 read_tiles() 读取平铺图像
- laravel - 使用传递多个值
- xamarin - ReceiveMemoryWarning 如果打开 pdf (mupdf-library)
- php - 无论我做什么,作曲家自动加载都不起作用
- php - Simplepie 不显示 RSS 提要
- angular - ngx-perfect-scrollbar 显示隐藏页脚
- c++ - 如何在 C++ 中的 lambda 函数中传递同名的局部变量和参数(使用 this 关键字)?
- reactjs - 在Material-Table中重新排序后是否可以获得当前页面数据?
- sql - 如何在plsql函数中查找包含字符串的行
- linux-kernel - 是否可以“拦截”进程的读/写?