use*_*000 2 python encoding google-api google-api-python-client
UnicodeDecodeError我正在尝试将一些代码从 Python 2 移植到 3,但在读取 Google API .p12 服务密钥时抛出 a 。
with open('service_key.p12', 'r') as f:
private_key = f.read()
Run Code Online (Sandbox Code Playgroud)
这是错误
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()
Run Code Online (Sandbox Code Playgroud)
如此处所述,二进制 I/O 不会进行字符编码/解码。您收到 UnicodeDecodeError 是因为您使用了 Text I/O,它尝试将数据解码为 UTF-8,但您的数据不是有效的 UTF-8。
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |