You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中无需JSON解析直接解码二进制字符串为非ASCII Unicode

无需JSON解析转储,直接打印非ASCII字符串的方法

当然有更简便的方法!完全不用绕JSON解析转储那一圈,根据你的字节串类型,分两种常见场景处理:

场景1:字节串是目标文本的直接编码(比如UTF-8)

如果你的二进制对象是直接用UTF-8(或其他对应编码)编码的非ASCII文本(比如俄文“Обновление”的UTF-8字节),直接解码后打印就行:

# 这是"Обновление"的UTF-8编码字节串
byte_data = b'\xd0\x9e\xd0\xb1\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5'
print(byte_data.decode('utf-8'))  # 直接输出:Обновление

场景2:字节串包含Unicode转义序列(\uXXXX)

像你给出的b'\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435',其实是字节串里存了\u041e这类Unicode转义的ASCII字符。这种情况直接用unicode-escape解码就能把转义序列转换成真实的Unicode字符:

byte_data = b'\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435'
print(byte_data.decode('unicode-escape'))  # 输出:Обновление

如果是已经解码后的字符串(比如手里有个包含\uXXXX的普通字符串),也可以用类似逻辑处理:

str_with_escapes = "\\u041e\\u0431\\u043d\\u043e\\u0432\\u043b\\u0435\\u043d\\u0438\\u0435"
real_text = str_with_escapes.encode('ascii').decode('unicode-escape')
print(real_text)  # 输出:Обновление

针对你最初的JSON格式字节串

如果拿到的是类似b'{"node": "\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435"}}'的字节串,不想用JSON解析的话,直接用unicode-escape解码就能展开所有转义字符,保留JSON结构的同时显示非ASCII文本:

json_byte_data = b'{"node": "\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435"}}'
print(json_byte_data.decode('unicode-escape'))  # 输出:{"node": "Обновление"}}

内容的提问来源于stack exchange,提问作者kurtgn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:29:46