我尝试使用BigQuery的Python API创建新表:
bigquery.tables().insert(
projectId="xxxxxxxxxxxxxx",
datasetId="xxxxxxxxxxxxxx",
body='{
"tableReference": {
"projectId":"xxxxxxxxxxxxxx",
"tableId":"xxxxxxxxxxxxxx",
"datasetId":"accesslog"},
"schema": {
"fields": [
{"type":"STRING", "name":"ip"},
{"type":"TIMESTAMP", "name":"ts"},
{"type":"STRING", "name":"event"},
{"type":"STRING", "name":"id"},
{"type":"STRING","name":"sh"},
{"type":"STRING", "name":"pub"},
{"type":"STRING", "name":"context"},
{"type":"STRING", "name":"brand"},
{"type":"STRING", "name":"product"}
]
}
}'
).execute()
我得到的错误是:
^{pr2}$我认为只要在https://developers.google.com/resources/api-libraries/documentation/bigquery/v2/python/latest/bigquery_v2.tables.html#insert上有文档记录,所有必需的参数都包括在内
少了什么?在
可能太晚了,但问题是
body
参数必须是dictionary而不是字符串。在tables.insert
唯一需要的参数是tableReference
,它必须有tableId
、datasetId
和{dict
。例如,以下代码用于创建表(注意,dataset_ref
是一个Python技巧,用于将内容复制到命名参数):相关问题 更多 >
编程相关推荐