从python中的base64编码字符串中获取字符串

时间:2014-08-13 08:36:04

标签: python

我必须在python中向休息服务器发帖。在头认证中,我必须包含base64编码的字符串。

我使用base64模块:

import base64
#node here is '3180' but I also tried with text
node = base64.b64encode(node.encode('utf-8'))
node = 'Basic ' + str(node)
headers = {'Content-type': 'application/json', 'Authentication': node}
print(headers)

我得到的印刷品是:

{'Authentication': "Basic b'MzE4MA=='", 'Content-type': 'application/json'}

其中b' ... '添加到节点base64字符串。有没有办法避免出现这些字符?我不知道它们是出现在打印件上还是发送到服务器上。

1 个答案:

答案 0 :(得分:3)

b64encode正在返回bytes而不是str。当你在没有指定编码的情况下调用str()时,它不是转换值,而是实际上为你提供了b'MzE4MA=='字节对象的Python表示。

为避免这种情况,请使用node = 'Basic ' + node.decode('ascii')

请注意,您也可以使用str(node, encoding='ascii'),但这会更长。