我将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=='"
我想念什么?
答案 0 :(得分:1)
如果您的数据中有b'...'
,则是repr()
字节字符串的表示。
如果您无法获取数据源来修复其内容(应该仅为Mw==
:他们给您的内容无效的base64编码!),您可以使用ast.literal_eval()
将其读取为字节串:
>>> import ast, base64
>>> x = "b'Mw=='"
>>> base64.b64decode(ast.literal_eval(x))
'3'