如何在Python中将字节格式字符串解析为字节类型?
将字节格式字符串转换为字节类型的方法
方法一:使用ast.literal_eval(推荐,安全可靠)
ast.literal_eval可安全解析字符串中的Python字面量(包括字节字面量),不会执行任意代码,是处理这类场景的最优解:
import ast S = "b'\\xec\\xa7\\x80\\xeb\\xb0\\x98\\xec\\x84\\xa0'" # 解析字符串为字节对象 B = ast.literal_eval(S) print(type(B)) # 输出:<class 'bytes'> print(B.decode('utf-8')) # 输出:지반선
方法二:手动处理十六进制转义序列
如果无法使用ast模块,可以手动剥离字符串中的标识字符,提取十六进制内容后转换为字节:
S = "b'\\xec\\xa7\\x80\\xeb\\xb0\\x98\\xec\\x84\\xa0'" # 移除开头的`b'`和结尾的`'`,替换`\x`标识 hex_content = S[2:-1].replace('\\x', '') # 将十六进制字符串转换为字节 B = bytes.fromhex(hex_content) print(B.decode('utf-8')) # 输出:지반선
注意事项
- 方法一支持所有合法的Python字节字面量格式(包括包含转义字符的复杂场景),兼容性和安全性更强;
- 方法二仅适用于类似示例中仅包含
\x十六进制转义的场景,若字符串中存在其他转义字符(如\\n),需要额外处理。
内容的提问来源于stack exchange,提问作者user14567627
相关产品推荐
相关产品推荐

