base64解码一个字符串,例如“ b'Mw =='”(包含文字b'子字符串)

时间:2019-03-06 23:26:41

标签: python python-3.x

我将ID的逗号分隔列表(例如"1,2,3")编码为base64,然后从表单返回的数据看起来像下面的x

我尝试了解码和编码以及各种操作,但是似乎没有任何东西可以返回原始字符串。

x = "b'Mw=='"

base64.b64decode(x)
# b'l\xcc'

x.decode()
# AttributeError: 'str' object has no attribute 'decode'

y = x.encode('utf-8')
print(y)
# b"b'Mw=='"

我想念什么?

1 个答案:

答案 0 :(得分:1)

如果您的数据中有b'...',则是repr()字节字符串的表示。

如果您无法获取数据源来修复其内容(应该仅为Mw==:他们给您的内容无效的base64编码!),您可以使用ast.literal_eval()将其读取为字节串:

>>> import ast, base64
>>> x = "b'Mw=='"
>>> base64.b64decode(ast.literal_eval(x))
'3'