gpt4 book ai didi

python - 使用 Python 将 base64 编码的谷歌服务帐户 key 转换为 JSON 文件

转载 作者:行者123 更新时间:2023-12-04 13:59:28 30 4
gpt4 key购买 nike

您好,我正在尝试将 google 服务帐户 JSON key (包含在文件 foo.json 中名为 privateKeyData 的 base64 编码字段中 - 更多上下文 here )转换为实际的 JSON 文件(我需要该格式,因为 ansible 只接受该格式)

foo.json 文件是使用这个 google python api method 获得的

我正在尝试做的事情(尽管我使用的是 python)也描述了 this顺便说一下,线程对我不起作用(在 OSx 和 Linux 上尝试过)。

#!/usr/bin/env python3

import json
import base64

with open('/tmp/foo.json', 'r') as f:
ymldict = json.load(f)

b64encodedCreds = ymldict['privateKeyData']

b64decodedBytes = base64.b64decode(b64encodedCreds,validate=True)

outputStr = b64decodedBytes
print(outputStr)

#issue
outputStr = b64decodedBytes.decode('UTF-8')
print(outputStr)

产量
./test.py 
b'0\x82\t\xab\x02\x01\x030\x82\td\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\tU\x04\x82\tQ0\x82\tM0\x82\x05q\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\x05b\x04\x82\x05^0\x82\x05Z0\x82\x05V\x06\x0b*\x86H\x86\xf7\r\x01\x0c\n\x01\x02\xa0\x82\x#TRUNCATING HERE
Traceback (most recent call last):
File "./test.py", line 17, in <module>
outputStr = b64decodedBytes.decode('UTF-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 1: invalid start byte

我想我的想法已经用完了,现在花了一天多的时间来做这件事:(

我究竟做错了什么?

最佳答案

你的 base64 解码逻辑对我来说看起来不错。您面临的问题可能是由于字符编码不匹配造成的。调用后收到的响应正文 create (您的 foo.json 文件)可能未使用 UTF-8 编码。查看响应头的 Content-Type field 。它应该是这样的:

Content-Type: text/javascript; charset=Shift_JIS

尝试使用内容类型中使用的编码对 base64 解码字符串进行解码
b64decodedBytes.decode('Shift_JIS')

关于python - 使用 Python 将 base64 编码的谷歌服务帐户 key 转换为 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53457917/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com