使用selected_fields在Bigquery API Python中列出行时不匹配的字段

时间:2018-02-06 11:18:58

标签: python google-bigquery

我正在尝试使用Python API读取Bigquery中表的选定字段。

这是我的代码:

rows = bigquery_client.list_rows(table_ref,
                selected_fields=[bigquery.SchemaField('id', 'INTEGER'),
                bigquery.SchemaField('name', 'STRING'),
                bigquery.SchemaField('short_name', 'STRING'),
                bigquery.SchemaField('subdomain', 'STRING'),
                bigquery.SchemaField('address', 'STRING'),
                bigquery.SchemaField('address2', 'STRING'),
                bigquery.SchemaField('department', 'STRING'),
                bigquery.SchemaField('city', 'STRING'),
                bigquery.SchemaField('state', 'STRING'),
                bigquery.SchemaField('zip', 'STRING')])
for row in rows:  # API request
        print(row)

我得到了这个错误:

ValueError: time data 'dummy' does not match format '%Y-%m-%dT%H:%M:%S'

这个虚拟值来自子域字段,标记为String,所以我不明白为什么Bigquery将其解析为DateTime。我已经检查过表格是否创建得很好,所以这不是问题所在。

任何帮助?

1 个答案:

答案 0 :(得分:1)

我用这个解决了这个问题:

# Start the query, passing in the extra configuration.
query = """SELECT id, name, short_name,
    subdomain, address, address2, department, state, zip
    from dataset.table;"""

query_job = bigquery_client.query(query, job_config=job_config)