python - BigQuery 中的 Heisenberg 错误“invalid_grant”?
问题描述
我使用多台计算机、笔记本电脑和服务器,用于在同一个帐户上运行 BigQuery。现在使用一台计算机,我收到了使用 Python pandas 运行 bigquery 脚本的错误,pd.read_gbq
这样
import pandas as pd
pd.read_gbq(query='''select 1''', project_id=7777777, dialect='legacy')
invalid_grant: Bad Request', '{\n "error" : "invalid_grant",\n "error_description" : "Bad Request
我得到了几个星期,但没有得到其他人,因此称之为海森堡错误,不确定是否是由我使用许多计算机的问题引起的。
如何解决 BigQuery invalid_grant 错误?python 版本是否错误client_secrets.json
(我在本地找不到)?
解决方案
身份验证有多种方式,我在评论中提供了服务帐户的解决方案。
服务帐号
您可以在此处创建服务帐户,此处为说明。然后,将 read_gbq 与参数一起使用,使得private_key
import pandas as pd
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json('BQ.json')
a=pd.read_gbq(query='select 1', project_id='', dialect='standard', private_key='BQ.json')
print(a)
它最初无法在没有客户端的情况下工作,from google.cloud import bigquery
但在第一次成功连接后,它也开始在没有客户端的情况下工作。
推荐阅读
- entity-framework - EF Core:同时进行多个 Where 查询
- python - 使用 Lambda 函数和变量参数求和
- python-3.x - 是否可以更改 np.add() 函数的精度?
- r - 使用 str_detect 提取字符串的值
- python - TypeError 只能转换 str
- python - 在 hypen 之前使用 split 打印两个文本
- python - 如何将列表从对偶数和奇数说真/假更改为简单地对每个数字说偶数或奇数?
- mysql - 如果他们是我的朋友,MySql 查询来检查 id 列表?
- azure - 是否可以通过图形 api 使用联合域创建 Azure AD 用户帐户?
- angular - 如何在 Angular 9 中导入所有 Angular Material 模块