我正在尝试使用Python脚本从Google Cloud Storage导出JSON格式的表格。当我从BigQuery手动导出表作为JSON时,它以这种格式完成。
{"f0_":5586.2928892104655}
然而,当我使用我的Python脚本下载它时,我会以这种格式接收它。
f0_
5586.2928892104655
这是我用来导出和下载JSON的代码。
def export_data_to_gcs(data, test2, destination):
bigquery_client = bigquery.Client(data)
dataset = bigquery_client.dataset('FirebaseArchive')
table = dataset.table('SumConnectionTime')
job_name = str(uuid.uuid4())
job = bigquery_client.extract_table_to_storage(
job_name, table, 'gs://firebase_results/SumConnectionTime.json')
job.source_format = 'NEWLINE_DELIMITED_JSON'
job.begin()
wait_for_job(job)
def wait_for_job(job):
while True:
job.reload()
if job.state == 'DONE':
if job.error_result:
raise RuntimeError(job.errors)
return
time.sleep(1)
export_data_to_gcs(data, 'SumConnectionTime', destination)
client = storage.Client(project=data)
bucket = client.get_bucket('firebase_results')
blob = bucket.blob('SumConnectionTime.json')
with open('SumConnectionTime.json', 'w') as file_obj:
blob.download_to_file(file_obj)
我需要它是我最初收到的格式,因为我正在运行带有返回值的json.load。谢谢你的帮助。
答案 0 :(得分:1)
我怀疑您的问题是您没有指定要将BigQuery导出到的目标格式。如果您需要JSON,请尝试使用以下代码替换关于source_format的行:
job.destination_format = NEWLINE_DELIMITED_JSON