2016-09-01 4 views
0

Dies ist der Teil meines Codes, mit dem ich Probleme habe.Mit table.insertall() können keine Daten in bigquery hochgeladen werden.

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

Wenn ich Antwort drucken, erhalte ich die Antwort:

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

Ich kann das Projekt, Datensatz bewerten und auch die Tabelle, aber ich kann die Werte in der Tabelle aktualisieren. Was muss ich anders machen? Natürlich möchte ich nicht zwei Werte eingeben, aber ich kann nichts hochladen. Sobald ich etwas hochladen kann, kann ich die Zeilen bearbeiten.

+0

können Sie bitte Ihr Tabellenschema angeben? Ich denke, das JSON-Datenformat, das Sie hier angegeben haben, ist nicht korrekt. – Sriram

Antwort

1

Obwohl es schwer zu sagen ist, ohne auf Ihr Schema zu schauen, bin ich ziemlich sicher, dass Ihre JSON-Daten nicht korrekt sind. Hier ist was ich benutze.

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