无法使用 table.insertall() 将任何数据上传到 bigquery

Posted

技术标签:

【中文标题】无法使用 table.insertall() 将任何数据上传到 bigquery【英文标题】:Can't upload any data to bigquery using table.insertall() 【发布时间】:2016-09-01 09:05:19 【问题描述】:

这是我遇到问题的代码部分。

table_data_insert_all_request_body = 
    "kind": "bigquery#tableDataInsertAllRequest",
    "skipInvalidRows": True,
    "ignoreUnknownValues": True,
    "templateSuffix": 'suffix',
"rows": [

  "json": 
      ("one"): ("two"),
      ("three"): ("four")

          
     
    ]


request = service.tabledata().insertAll(projectId=projectId, datasetId=datasetId, tableId=tableId, body=table_data_insert_all_request_body)
response = request.execute()

如果我打印响应,我会得到响应:

u'kind': u'bigquery#tableDataInsertAllResponse'

我可以评估项目、数据集甚至表格,但我无法更新表格中的值。我需要做些什么不同的事情?显然我不想输入两个值,但我无法上传任何内容。一旦我可以上传一些东西,我就可以让行正常工作。

【问题讨论】:

您能提供您的表架构吗?我觉得你这里给出的json数据格式不正确。 【参考方案1】:

即使不查看您的架构就很难判断,但我很确定您的 json 数据不正确。 这是我使用的。

Bodyfields = 
    "kind": "bigquery#tableDataInsertAllRequest",
    "rows": [
                
                        "json": 
                            'col_name_1': 'row 1 value 1',
                            'col_name_2': 'row 1 value 2'
                        
                ,
                
                        "json": 
                            'col_name_1': 'row 2 value 1',
                            'col_name_2': 'row 2 value 2'
                        
                
    ]

【讨论】:

以上是关于无法使用 table.insertall() 将任何数据上传到 bigquery的主要内容,如果未能解决你的问题,请参考以下文章

离子推送 - 未在设备上获取令牌

UTC 是不是遵守夏令时?

BLE广告和信标

Angular 嵌套拖放 / CDK 材质 cdkDropListGroup cdkDropList nested

认识工作流

分布式事务