Большой запрос вставки строки из python - что такое формат метода insert_row ()? - PullRequest
0 голосов
/ 24 января 2020

У меня есть программа python, которая хранит значения в базе данных. Я хотел бы хранить их в большом запросе, а не локально. Из Big Query docs Я смотрел на этот пример:

rows_to_insert = [(u"Phred Phlyntstone", 32), (u"Wylma Phlyntstone", 29)]

Где я могу найти подробное объяснение того, как это работает? Что надо go где и как его нужно отформатировать. Я создал таблицу со схемой (имя, дата, возраст). Когда я создаю свой собственный rows_to_insert, я рассматриваю каждое поле ("Phred", 2345-02-19, 44) как столбец, определенный схемой?

Если так, могу ли я использовать переменную здесь? Если я могу, может кто-нибудь привести быстрый пример того, как это выглядит? (x, y, z) или ({x}, {y}, {z}) или ((x), (y), (z)).

В приведенном выше примере каждая запись строки начинается с «у». Почему?

общий синтаксис, который я видел:

INSERT INTO ‘table_name’
(column1, column2, column3, - - - )
VALUES (value1, value2, value3 - - -)

Могу ли я использовать этот синтаксис?

Спасибо за чтение моего поста. Если я допустил ошибку в том, как сформулировал мой вопрос о том, есть ли у вас предложение о том, как представить его более четко, сообщите мне об этом, и я исправлюсь.

1 Ответ

1 голос
/ 24 января 2020

Справочную информацию по этой функции можно найти здесь . О том, как она должна быть отформатирована, в документации сказано следующее:

  • строк (объединение [ Sequence [Tuple], Sequence [dict]]) - Вставить данные строки. Если указан список кортежей, каждый кортеж должен содержать данные для каждого поля схемы в текущей таблице и в том же порядке, что и поля схемы. Если указан список словарей, ключи должны включать все обязательные поля в схеме. Ключи, которые не соответствуют полю в схеме, игнорируются.

Это означает, что вы должны использовать в качестве аргументов список кортежей с упорядоченными значениями, соответствующими полям в вашей таблице. Другая возможность заключается в отправке списка словарей с указанием полей в качестве ключей и данных, которые будут вставлены в качестве значений в каждое поле. Если вы используете переменные, вы должны просто поместить имя переменной вместо литерального значения в ваш кортеж или в поле значения вашего словаря. Например, если у вас есть две переменные x и y, вы можете сделать: (x,y) или {'key1':x, 'key2': y}, где key1 и key2 - это имена полей в вашей таблице.

Об используемом u перед строкой: это Python нотация для строк Unicode. Вы должны использовать это, когда вы работаете с кодировкой Unicode.

Я надеюсь, что это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...