Python日志记录:unicode符号是unicode转义的[重复]

Posted

技术标签:

【中文标题】Python日志记录:unicode符号是unicode转义的[重复]【英文标题】:Python logging: unicode symbols is unicode-escaped [duplicate] 【发布时间】:2019-06-16 18:00:00 【问题描述】:

我想记录对文件的请求响应,但是当我使用 getLogger().warning(string) 时,以下字符串被 unicode-escaped 示例:

r = requests.post(...)
result = json.loads(r.text)  # Now result == '"error": "Ошибка 1"'
getLogger().warning(json.dumps(result))

此代码将写入日志文件 unicode 转义字符串,其中“Ошибка”将写为“\u0417\u0430\u043a\u0430\u0437...” 但我想按原样查看这些角色。

【问题讨论】:

【参考方案1】:

您的问题是 json.dumps 通过转义将 Unicode 转换为 ASCII。这可以通过在.dumps 函数中添加一个额外的参数ensure_ascii=False 来避免:

r = requests.post(...)
result = json.loads(r.text)  # Now result == "error": "Ошибка 1"
getLogger().warning(json.dumps(result, ensure_ascii=False))

您可以检查 documentation 以获取 json.dumps 函数的其他参数。

【讨论】:

以上是关于Python日志记录:unicode符号是unicode转义的[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python字符串和编码

Python编码

python的编码和解码

C++ Win32api 从用户输入输出 Unicode

python记录点

Python:将乳胶符号转换为 unicode?