我有一个二进制对象:
b'{"node": "\\u041e\\u0431\\u043d\\u043e\\u0432\\u043b\\u0435\\u043d\\u0438\\u0435"}}'
我希望它以Unicode格式打印,而不是严格使用ASCII符号。你知道吗
有一种方法很难做到:
decoded = string.decode()
parsed_to_dict = json.loads(decoded)
dumped = json.dumps(parsed_to_dict, ensure_ascii=False)
print(dumped)
>>> {"node": "Обновление"}
但是文本并不总是可以解析为JSON,所以我需要一种更简单的方法。你知道吗
有没有一种方法可以将我的二进制对象(或解码的Unicode字符串)打印成非ascii字符串,而不必解析/转储JSON?你知道吗
例如,如何将此b'\\u041e\\u0431\\u043d\\u043e\\u0432\\u043b\\u0435\\u043d\\u0438\\u0435'
打印为Обновление
?你知道吗
只要所有的转义都是有效的(没有单个的
\
),这种方法就可以工作。你知道吗输出:
类似于
bytes
字符串的已使用Unicode转义序列编码。要将其转换回正确的Unicode字符串,只需指定“Unicode转义”编解码器:
输出
但是,如果
data
已经是Unicode字符串,那么首先需要将其编码为字节。您可以使用ascii
编解码器,假定data
只包含ASCII字符。如果它包含ASCII以外的字符,但在\x80
到\xff
范围内,则可以使用“拉丁1”编解码器。你知道吗相关问题 更多 >
编程相关推荐