【发布时间】:2018-01-23 10:55:08
【问题描述】:
我们正在编写代码以使用 Python API 以自动方式“扩充”我们的 BigQuery 表和其他元数据
我们通过使用键值标签系统(工作正常)来做到这一点,并通过以下方式更新列描述:
- 每个表,遍历架构列
- 对列元数据做一些事情
- 将列添加到新架构中
- 更新架构
但是,在处理具有 RECORD 类型字段的表时,最后一个步骤会出错。尝试更新架构时,我在 RECORD 字段内的第一个嵌套字段上收到以下错误:
SchemaField(u'nestedField', u'integer', u'NULLABLE', None, ()) 不是 JSON可序列化
代码如下:
orig_table = bigquery_client.get_table(table)
schema = list(orig_table.schema)
new_schema = list()
for column in schema:
columntxt = *do something to define the column metadata*
new_schema.append(bigquery.SchemaField(column.name, column.field_type, column.fields, description=columntxt ))
orig_table.schema = new_schema
table = bigquery_client.update_table(orig_table, ['schema', 'labels'])
如何正确解决此问题/使代码适用于嵌套架构表?
【问题讨论】:
-
bigquery_client是什么?从您的代码中不清楚。