我有一个这样的字符串:s = "b'1f\xe6\xb5\x8b\xe7\xbb\x98'"
如何将其转换回原始字符串?
我尝试使用eval(s)
,但是得到SyntaxError: bytes can only contain ASCII literal characters.
答案 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)
的样子?