Daniel Lee Daniel Lee - 3 months ago 10
JSON Question

Can't upload any data to bigquery using table.insertall()

This is the portion of my code that I'm having issues with.

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()


If I print response, I get the response:

{u'kind': u'bigquery#tableDataInsertAllResponse'}


I can assess the project, dataset and even the table but I cant update the values in the table. What do I need to do differently? Obviously I don't want to enter two values but I cant get anything to upload. Once I can get something to upload I'll be able to get rows working.

Answer

Even though its tough to tell without looking at your schema, I am pretty sure your json data is not correct. Here is what I use.

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'
                        }
                }
    ]
}