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

如何将Python中存储为字符串的bytes字面量直接转换为bytes类型

带b前缀的字符串转正确RSA公钥bytes类型的解决方案

你手里的内容是Python bytes字面量的字符串格式存储结果,不是普通的公钥字符串,直接用encode()或bytes()转换会把外层的b'、'标记也当成内容处理,所以会出现多余的嵌套前缀。

解法1:使用ast.literal_eval(推荐,最安全便捷)

这个方法可以安全解析符合Python字面量语法的字符串,自动适配类型,不需要手动处理字符串截取。

  • 代码示例:
import ast

# 你存储的带b前缀的字符串
key_str = "b'-----BEGIN RSA PUBLIC KEY-----\nMBgCEQCc5QP2pLttRTltj9QFdn1DAgMBAAE=\n-----END RSA PUBLIC KEY-----\n'"
key_bytes = ast.literal_eval(key_str)
  • 不要使用eval实现相同逻辑,ast.literal_eval仅会解析Python字面量,不会执行任意代码,安全性更高。

解法2:手动截取字符串后编码(无需导入模块)

手动移除字符串首尾的b'、'标记和多余空白后再编码即可。

  • 代码示例:
# 你存储的带b前缀的字符串
key_str = "b'-----BEGIN RSA PUBLIC KEY-----\nMBgCEQCc5QP2pLttRTltj9QFdn1DAgMBAAE=\n-----END RSA PUBLIC KEY-----\n'"
# 先去除首尾空白,再去掉开头2个字符b'和结尾1个字符',最后编码为bytes
key_bytes = key_str.strip()[2:-1].encode("utf-8")

以上两种方法得到的key_bytes都是符合要求的bytes类型,没有多余前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:02