gpt4 book ai didi

python - GCP 服务帐户 key 轮换

转载 作者:行者123 更新时间:2023-12-01 08:39:41 31 4
gpt4 key购买 nike

我正在尝试为 GCP 服务帐户实现 key 轮换。我已成功创建一个新 key ,然后解码采用 Base64 编码的 privateKeyData,其中包含实际的 SA JSON 文件。现在,当我读回文件进行身份验证时,它给了我这个错误:

'unicode object has no iterKeys()'

我认为问题出在 json.dumps 上。

data = base64.b64decode(key['privateKeyData']).decode('utf-8')
print data # this prints expected output


with open('file.json', mode='w') as out:
str = json.dumps(data)
print out # this adds \n,\\ to the output
out.write(str)

错误:

AttributeError: 'unicode' object has no attribute 'iterkeys'

json.dumps 之后如何转换文件的虚拟片段:

"{\n  \"type\": \"service_account\",\n  \"project_id\": \"testproj\",\n  \"private_key_id\": \6866996939\"}"\n

最佳答案

json.dumps() 函数通常用于将 dict 转换为表示 JSON 的字符串:

>>> json.dumps({"foo": "bar"})
'{"foo": "bar"}'

但是你给它一个字符串,这导致它转义引号:

>>> json.dumps('{"foo": "bar"}')
'"{\\"foo\\": \\"bar\\"}"'

您应该只将数据写入文件:

with open('file.json', mode='w') as out:
out.write(data)

看来您可能有第二个问题导致异常,您应该在答案中包含完整的回溯,而不仅仅是最后一行。

关于python - GCP 服务帐户 key 轮换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53564217/

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