在Python中将字节文本(类型是字符串)转换为字符串

时间:2018-07-05 11:59:54

标签: python string byte encode

我有一个这样的字符串:s = "b'1f\xe6\xb5\x8b\xe7\xbb\x98'"

如何将其转换回原始字符串?

我尝试使用eval(s),但是得到SyntaxError: bytes can only contain ASCII literal characters.

1 个答案:

答案 0 :(得分:1)

请勿使用eval,这很危险。改用ast.literal_eval,然后解码为类似@Amadan的字符串:

import ast
s = r"b'1f\xe6\xb5\x8b\xe7\xbb\x98'"
res = ast.literal_eval(s).decode()
print(res)  # --> '1f测绘'

正如评论中所述,我的s实际上有一个repr,看起来像"b'1f\\xe6\\xb5\\x8b\\xe7\\xbb\\x98'"。您能否确认您的print(repr(your_string))print(your_string)的样子?