我有以下字符串:
str = "3, b'\\xf3\\xc71\\xe9\\xad_\\xce\\x8bI\\x1c\\x04Y\\xd5z\\xa2Q'"
我需要将其拆分以获取两个变量,一个int和一个字节串,如下所示:
number = 3
bytestring = b'\\xf3\\xc71\\xe9\\xad_\\xce\\x8bI\\x1c\\x04Y\\xd5z\\xa2Q'
我尝试做的事情:
number, bytestring = [s for s in str.split(", ")]
int_number = int(number)
bytestring_in_bytes = bytestring.encode()
不幸的是,这对于字节串不起作用,我最终得到了这样的东西:
bytesring_in_bytes = b"b'\\xf3\\xc71\\xe9\\xad_\\xce\\x8bI\\x1c\\x04Y\\xd5z\\xa2Q'"
有人知道如何从字符串中获取字节串吗?
答案 0 :(得分:3)
您在这里看到的内容似乎是字节串的文本表示形式(在Python中为repr(..)
)。
您可以使用ast.literal_eval(..)
将其转换为字节串:
from ast import literal_eval
bytestring_in_bytes = literal_eval(bytestring)
请注意,如果其中包含str
,int
等,则bytestring_in_bytes
的类型将为str
,int
,等等。