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

如何将B字符串(bytes字面量形式)转换为实际bytes类型?

Python字符串转bytes类型实现方案

你手里的bstr是Python bytes字面量的字符串格式化结果,要转成和bbytes完全一致的类型和值,有两种常用实现方式:

方法1:使用ast.literal_eval(推荐,安全)

该方法只会解析Python字面量,不会执行任意代码,是处理这类场景的首选方案。

import ast

bstr = "b'\\xe4\\xb8\\x96\\xe7\\x95\\x8c'"
bbytes = ast.literal_eval(bstr)

# 验证结果
print(bbytes)  # 输出:b'\xe4\xb8\x96\xe7\x95\x8c'
print(type(bbytes))  # 输出:<class 'bytes'>
print(bbytes == b'\xe4\xb8\x96\xe7\x95\x8c')  # 输出:True

方法2:手动字符串处理+编码转换

不需要引入额外模块,适合简单场景下使用:

bstr = "b'\\xe4\\xb8\\x96\\xe7\\x95\\x8c'"
# 去除首尾的b'和'标识
raw_str = bstr.strip("b'")
# 解析转义序列后转换为原始bytes
bbytes = raw_str.encode('utf-8').decode('unicode-escape').encode('latin1')

# 验证结果
print(bbytes)  # 输出:b'\xe4\xb8\x96\xe7\x95\x8c'
print(type(bbytes))  # 输出:<class 'bytes'>
print(bbytes == b'\xe4\xb8\x96\xe7\x95\x8c')  # 输出:True

注意:如果你的bstr里的bytes字面量本身包含单引号,手动处理的方法会出错,优先使用ast.literal_eval方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:05