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

Python BigQuery API是否变更?run_sync_query方法报错求助

问题解答:AttributeError: 'Client' object has no attribute 'run_sync_query'

没错,你碰到的这个问题完全是因为Google Cloud BigQuery Python客户端API发生了版本变更——run_sync_query这个方法已经被正式弃用并从新版本的API中移除了。

替代方案:使用client.query()方法

现在官方推荐的查询方式是使用Client.query(),它会返回一个QueryJob对象,你可以通过调用这个对象的result()方法来同步获取查询结果(这个方法会阻塞直到查询完成,和你之前用run_sync_query的同步效果一致)。

修改后的代码示例

把你原来的代码改成下面这样就可以正常运行了:

from google.cloud import bigquery
import codecs

bigquery_client = bigquery.Client('myprojectID')
# 提交查询请求
query_job = bigquery_client.query("""
SELECT [ my query here ] FROM `[...]`;
""")
# 等待查询完成并获取结果
query_results = query_job.result()

# 如果你需要遍历结果,可以这样做
for row in query_results:
    print(row)

额外补充

如果习惯用pandas处理数据,还可以直接把查询结果转换成DataFrame:

import pandas as pd
df = query_job.to_dataframe()

这个新的API设计更灵活,既支持同步获取结果(通过result()),也支持异步处理查询任务,符合Google Cloud API的统一设计风格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:34:07