[英]Python Convert class<str> to class <bytes>
我在类中有这个字符串值:
key = "b'\x81*u\x11\xe8k\xef\xbc\xc6\xef\x9d\x83\x9f!\x0ej'"
我希望它转换为与类
key = b'\x81*u\x11\xe8k\xef\xbc\xc6\xef\x9d\x83\x9f!\x0ej'
我将如何在 Python 中做到这一点? 任何将不胜感激。
key
的提供者应该固定来存储值而不是字节的表示
无论如何,要撤消该操作,您可以使用相反的方法,即ast.literal_eval
import ast
key = r"b'\x81*u\x11\xe8k\xef\xbc\xc6\xef\x9d\x83\x9f!\x0ej'"
print(ast.literal_eval(key))
打印:
b'\x81*u\x11\xe8k\xef\xbc\xc6\xef\x9d\x83\x9f!\x0ej'
请注意,我必须在key
文字上使用原始前缀,这可能与您拥有的输入数据相匹配。
此修复不会取代整个链的正确修复:转换为表示并将其解析回 CPU 方面会产生成本。
如果您的key
变量的值字面上是"b'\\x81*u\\x11\\xe8k\\xef\\xbc\\xc6\\xef\\x9d\\x83\\x9f!\\x0ej'"
(而不是r"b'\\x81*u\\x11\\xe8k\\xef\\xbc\\xc6\\xef\\x9d\\x83\\x9f!\\x0ej'"
@Jean-FrançoisFabre 的回答假定),您可以使用int.to_bytes
在剥离第一个后将key
的字符转换为字节两个和最后一个字符(即b'
和'
):
b''.join(ord(c).to_bytes(1, 'big') for c in key[2:-1])
这将返回:
b'\x81*u\x11\xe8k\xef\xbc\xc6\xef\x9d\x83\x9f!\x0ej'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.