我一直在调整bigquery-python-samples github repository找到的asynch_query.py脚本,以便从google bigquery返回数据。如上所述,返回结果的代码部分会生成JSON格式的项目列表。
def run(project_id, query_string, batch, num_retries, interval):
service = get_service()query_job = async_query(service,
project_id,
query_string,
batch,
num_retries)
poll_job(service,
query_job['jobReference']['projectId'],
query_job['jobReference']['jobId'],
interval,
num_retries)
for page in paging(service,
service.jobs().getQueryResults,
num_retries=num_retries,
**query_job['jobReference']):
yield json.dumps(page['rows'])`
我的查询返回单个项目:一个字段的MAX值。我想更改脚本以返回一个字符串对象,以便结果可以连接到另一个字符串对象。使用上面的代码,我得到这样的值:[<" f":[<" v":" ga_sessions_20150505">]>]。
我需要它才能返回查询结果:" ga_sessions_20150505"没有JSON装饰。我没有成功调整脚本来产生这种结果。我的目标是创建一个可以从另一个python脚本调用的函数,并将结果分配给变量以供进一步使用。有人可以提供一些帮助或指向一个有用的资源吗?
答案 0 :(得分:2)
我相信你想要这样的东西:
for page in paging(service,
service.jobs().getQueryResults,
num_retries=num_retries,
**query_job['jobReference']):
for row in page['rows']:
# Each row is a dict with fields, 'f', containing
# an array of table cells, one for each column
# of the query output. Each cell is a dict
# containing a value, 'v'.
yield row['f'][0]['v'] # This query generates 1 column.