我是python的新手,我很难将字节数组转换为base64字符串和/或ASCII。
尝试使用Google搜索,但似乎无法找到解决方案。
我可以在C#中轻松完成此操作,但似乎无法在Python 2.x / 3.x
中执行此操作非常感谢任何帮助。
提前致谢。
答案 0 :(得分:8)
最简单的方法是:将数组转换为json到base64:
import json
import base64
data = [0, 1, 0, 0, 83, 116, -10]
dataStr = json.dumps(data)
base64EncodedStr = base64.b64encode(dataStr)
print(base64EncodedStr)
print('decoded', base64.b64decode(base64EncodedStr))
打印出来:
>>> WzAsIDEsIDAsIDAsIDgzLCAxMTYsIC0xMF0=
>>> ('decoded', '[0, 1, 0, 0, 83, 116, -10]') # json.loads here !
......另一种选择可能是使用bitarray module。
答案 1 :(得分:2)
老实说,这应该就是你所需要的:https://docs.python.org/3.1/library/base64.html
在这个例子中,你可以看到它们将字节转换为base64的位置并再次将其解码回字节:
>>> import base64
>>> encoded = base64.b64encode(b'data to be encoded')
>>> encoded
>>> b'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
>>> b'data to be encoded'
您可能需要先将数组转换为带连接的字符串,如下所示:
>>> my_joined_string_of_bytes = "".join(["my", "cool", "strings", "of", "bytes"])
如果您还有其他需要,请告诉我。谢谢!