在Python中将byte []转换为base64和ASCII

时间:2017-05-11 16:17:36

标签: python

我是python的新手,我很难将字节数组转换为base64字符串和/或ASCII。

尝试使用Google搜索,但似乎无法找到解决方案。

我可以在C#中轻松完成此操作,但似乎无法在Python 2.x / 3.x

中执行此操作

非常感谢任何帮助。

提前致谢。

2 个答案:

答案 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"])

如果您还有其他需要,请告诉我。谢谢!