如何将String拆分为int和bytestring文字

时间:2018-06-27 14:41:53

标签: django string python-3.x byte

我有以下字符串:

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'"

有人知道如何从字符串中获取字节串吗?

1 个答案:

答案 0 :(得分:3)

您在这里看到的内容似乎是字节串的文本表示形式(在Python中为repr(..))。

您可以使用ast.literal_eval(..)将其转换为字节串:

from ast import literal_eval

bytestring_in_bytes = literal_eval(bytestring)

请注意,如果其中包含strint等,则bytestring_in_bytes的类型将为strint,等等。