为什么在用BigQuery创建表时遇到“TypeError:'SchemaField'object is not iterable”

2024-09-27 00:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从一个BigQuery表获取元数据(表结构),并在此基础上创建新表。例如,table 'Metadata' contains some table structures。在

在我的Python脚本中,FileSubtype是从其他脚本动态传递的,并在此基础上获取列名及其相应的数据类型。将使用这些列和数据类型创建新表。在

卡住的部分是,所有这些东西都必须是动态的。在

示例代码(出于测试目的,我对表名进行了硬编码):

query1 = client.run_sync_query('%s limit 10' % QUERY)
query1.run()
rows = list(query1.fetch_data())
table = dataset.table('Sample_BQ_Table1')
for row in rows:
        print(row[0])
# Set the table schema
        table.schema = (
            bigquery.SchemaField(row[0], 'STRING'),
            )
table.create()

我正面临错误

TypeError: 'SchemaField' object is not iterable`

设置表架构时。在


Tags: 数据run脚本schematable动态bigquery结构
1条回答
网友
1楼 · 发布于 2024-09-27 00:21:28

table.schema字段需要一个iterable,例如列表或元组。在

代码

table.schema = (
    bigquery.SchemaField(row[0], 'STRING')
)

不会将架构设置为iterable,因为普通括号不会创建元组。正确的代码应该是

^{pr2}$

注意后面的逗号。在

相关问题 更多 >

    热门问题