ValueError:无法反序列化关键数据

时间:2019-04-23 22:36:53

标签: python json google-cloud-platform google-cloud-storage

我在一个json文件中有一个密钥,并且我正在尝试将此文件输入Google Playstore的授权协议中。下面显示的是我尝试过的内容:

    #authorization key

        config = {
            "type": "abc",
            "project_id": "abc",
            "private_key_id": "123",
            "private_key": "-----BEGIN PRIVATE KEY----[REDACTED]\n-----END PRIVATE KEY-----\n",
            "client_email": "abc@service-account.iam.gserviceaccount.com",
            "client_id": "345",
            "auth_uri": "https://accounts.google.com/o/oauth2/auth",
            "token_uri": "https://accounts.google.com/o/oauth2/token",
            "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/cert",
            "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/reporting%service-account.iam.gserviceaccount.com"
        }

    #Put auth key  into json file
    dbutils.fs.put("Temp/123.json",json.dumps(config))

    #Feed authorization key into Google Cloud Storage (GCS) account.
    path='Temp/123.json'
    storage_client = google.cloud.storage.Client.from_service_account_json(path)

但是会引发以下错误:

  

ValueError:无法反序列化关键数据。       信息,require = ['client_email','token_uri'])

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

错误的原因似乎是私钥的格式错误。

尝试使用其他密钥;您可以在控制台中创建它,转到“ IAM&admin”->“服务帐户”-> [帐户],然后在其中编辑帐户并单击“创建密钥”按钮。

此外,您似乎正在使用cryptography软件包中的old version