You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需凭据文件直接传入凭证构造Google BigQuery Client的方法问询

报错原因

  1. 你安装的google-cloud-bigquery版本低于2.21.0,旧版本的Client类未提供from_service_account_info类方法
  2. 该方法要求传入的是解析后的JSON字典对象,你当前直接传入凭据字符串的用法不符合参数要求

解决方案

方案1:使用from_service_account_info(需2.21.0及以上版本)

首先升级SDK到对应版本:

pip install --upgrade google-cloud-bigquery>=2.21.0

修改代码,把凭据字符串转为字典后再传入:

import json
from google.cloud import bigquery

creds_str = get_creds_as_string() # 返回字符串格式的凭据内容
creds_dict = json.loads(creds_str)
client = bigquery.Client.from_service_account_info(creds_dict)

方案2:兼容旧版本的通用构造方式

如果不方便升级SDK,可以手动构造凭据对象再传入Client构造函数:

import json
from google.cloud import bigquery
from google.oauth2 import service_account

creds_str = get_creds_as_string()
creds_dict = json.loads(creds_str)
credentials = service_account.Credentials.from_service_account_info(creds_dict)
# 若需要指定项目ID,也可以在构造Client时传入project参数
client = bigquery.Client(credentials=credentials, project=creds_dict["project_id"])

内容的提问来源于stack exchange,提问作者CutePoison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 23:45:02