如何在没有 JSON 格式的情况下生成 BigQuery 结果?
How can I generate a BigQuery result without JSON formatting?
我一直在将 bigquery-python-samples github repository 中的 asynch_query.py 脚本改编为来自 google bigquery 的 return 数据。如所写,returns 结果生成 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'])`
我的查询return是单个项目:一个字段的最大值。我想将脚本更改为 return 一个字符串对象,以便可以将结果连接到另一个字符串对象。使用上面的代码,我得到这样的值:[<"f": [<"v": "ga_sessions_20150505">]>]。
我需要它 return 只是查询结果:"ga_sessions_20150505" 没有 JSON 装饰。我一直没有成功地调整脚本来产生这个结果。我的目标是创建一个可以从另一个 python 脚本调用的函数,并将结果分配给一个变量以供进一步使用。有人可以提供一些帮助或向我指出有帮助的资源吗?
我相信你想要这样的东西:
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.
我一直在将 bigquery-python-samples github repository 中的 asynch_query.py 脚本改编为来自 google bigquery 的 return 数据。如所写,returns 结果生成 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'])`
我的查询return是单个项目:一个字段的最大值。我想将脚本更改为 return 一个字符串对象,以便可以将结果连接到另一个字符串对象。使用上面的代码,我得到这样的值:[<"f": [<"v": "ga_sessions_20150505">]>]。
我需要它 return 只是查询结果:"ga_sessions_20150505" 没有 JSON 装饰。我一直没有成功地调整脚本来产生这个结果。我的目标是创建一个可以从另一个 python 脚本调用的函数,并将结果分配给一个变量以供进一步使用。有人可以提供一些帮助或向我指出有帮助的资源吗?
我相信你想要这样的东西:
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.