Obecnie robię wiele rzeczy w BigQuery i używam dużo try... except...
. To wygląda prawie każdy błąd wrócę z BigQuery jest apiclient.errors.HttpError, ale z różnych ciągów załączonych do nich, tj .:Jak zarządzać błędami interfejsu Google API w Pythonie
<HttpError 409 when requesting https://www.googleapis.com/bigquery/v2/projects/some_id/datasets/some_dataset/tables?alt=json returned "Already Exists: Table some_id:some_dataset.some_table">
<HttpError 404 when requesting https://www.googleapis.com/bigquery/v2/projects/some_id/jobs/sdfgsdfg?alt=json returned "Not Found: Job some_id:sdfgsdfg">
wśród wielu innych. W tej chwili jedynym sposobem, w jaki radzę sobie z tymi problemami, jest uruchamianie wyrażeń regularnych dotyczących komunikatów o błędach, ale jest to niechlujne i zdecydowanie nie idealne. Czy istnieje lepszy sposób?
Wygląda na to, że wyjątek ma kilka [dodatkowych atrybuty] (https://code.google.com/p/google-api-python-client/source/browse/apiclient/errors.py#35), na których możesz polegać - w szczególności możesz (próbować) parsuj JSON z 'error.content' i pracuj z tym. – mgilson