В данный момент я пытаюсь вставить строку в набор данных BQ.
Я хочу использовать функцию Client.insert_row () для этой документации
Я получил все в порядке, для простой схемы без какого-либо поля типа «Запись». Однако, когда я добавляю поле типа «Запись» в мою схему, я не знаю, как определить это в функции insert_row ()
Моя схема: Схема в BQ
Мой код:
client = bigquery.Client(
credentials=credentials,
project=credentials.project_id,
)
dataset_ref = client.dataset('channel_data')
table_ref = dataset_ref.table('test')
table = client.get_table(table_ref) # API call
rows_to_insert = [{"test1":"a","test2":"b","test3":"c","record":{"1":"d","2":"e"}},]
errors = client.insert_rows_json(table, rows_to_insert) # API request
assert errors == []
Я перепробовал много разных версий для строки _to_insert:
rows_to_insert = [{"test1":"a","test2":"b","test3":"c","record":["d","e"]},]
rows_to_insert = [{"test1":"a","test2":"b","test3":"c","record.1":"d","record.2":"e"}},]
ни одна из них не работает, и я не могу найти какую-либо информацию в Интернете, как сделать это. Кто-нибудь когда-либо делал это раньше?
Важно, чтобы он был вставлен как JSON, так как иногда некоторые значения отсутствуют. Я знаю, что вы можете просто поместить все в список и передать его следующим образом
rows_to_insert = [("a", "b", "c", ["d", "e"])]
, но это не вариант для меня!