这个问题在这里已有答案:
我想记录请求对文件的响应,但是当我使用getLogger().warning(string)
时,以下字符串是unicode-escaped示例:
r = requests.post(...)
result = json.loads(r.text) # Now result == '{"error": "Ошибка 1"}'
getLogger().warning(json.dumps(result))
此代码将写入日志文件unicode-escaped字符串,其中“Ошибка”将被写为“\ u0417 \ u0430 \ u043a \ u0430 \ u0437 ...”但我希望看到这些字符。
你的问题是json.dumps通过转义它将unicode转换为ascii。通过向.dumps函数添加额外参数ensure_asii = False可以避免这种情况。
r = requests.post(...)
result = json.loads(r.text) # Now result == {"error": "Ошибка 1"}
getLogger().warning(json.dumps(result, ensure_ascii=False))
您可以检查documentation以获取json.dumps函数的其他参数。