Я пытаюсь проверить, был ли результат моего запроса на создание или замену в python успешным или нет. Я написал код, подобный следующему
PROJECT = project_id
DATASET = dataset
FINAL_TABLE = final_table
MAIN_TABLE = main_table
main_query = \
f'CREATE OR REPLACE TABLE `{PROJECT}.{DATASET}.{FINAL_TABLE}` AS \
(SELECT * FROM `{PROJECT}.{DATASET}.{MAIN_TABLE}` WHERE region = "us")'
result = BQ.query(main_query)
if result.errors():
raise Exception('Table was not successfullly refreshed in bigQuery')
Однако синтаксис result.errors() работает неправильно. Каков синтаксис, чтобы попытаться достичь этого?
Синтаксис result.errors()
не работает, потому что result.errors
на самом деле является атрибутом QueryJob
, а не методом. Это список ошибок, которые могли произойти. Однако, если ошибок не возникает, result.errors
равно None
(см. также: Справочник по API ошибок).
Итак, просто удалив скобки, ваш код должен работать:
PROJECT = project_id
DATASET = dataset
FINAL_TABLE = final_table
MAIN_TABLE = main_table
main_query = \
f'CREATE OR REPLACE TABLE `{PROJECT}.{DATASET}.{FINAL_TABLE}` AS \
(SELECT * FROM `{PROJECT}.{DATASET}.{MAIN_TABLE}` WHERE region = "us")'
result = BQ.query(main_query)
if result.errors:
raise Exception('Table was not successfullly refreshed in bigQuery')