Google API Reading.p12密钥在python 3中



我试图将一些代码从Python 2移植到3,但当它读取Google API.p12服务密钥时,会抛出UnicodeDecodeError

with open('service_key.p12', 'r') as f:
    private_key = f.read()

这是错误

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 1: invalid start byte

这段代码在python 2.7中运行良好,与python 3.4不同我还安装了pyOpenSSL==0.14

在python 3中,打开二进制文件时也必须使用'b'标志:

with open('service_key.p12', 'rb') as f:
    private_key = f.read()

如上所述,二进制I/O不会进行字符编码/解码。您会得到UnicodeDecodeError,因为您使用了文本I/O,它试图将数据解码为UTF-8,但您的数据不是有效的UTF-8。

相关内容

  • 没有找到相关文章

最新更新