Ich versuche, eine SQL-Abfrage für einige BigQuery-Tabelle auszuführen. Ich bekomme immer eine DefaultCredentialsError
, wenn Sie versuchen, ein bigquery-Client-Objekt zu instanziieren. Zum Beispiel, indem Sie diese:Vermeidung von DefaultCredentialsError bei Verwendung von Google Bigquery API
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json('service_account_key.json')
Oder durch dies zu tun:
from oauth2client.service_account import ServiceAccountCredentials
key = open('service_account_key.json', 'rb').read()
credentials = ServiceAccountCredentials(
'my_email',
key,
scope='https://www.googleapis.com/auth/bigquery')
client = bigquery.Client(credentials=credentials)
Könnte es ein Problem mit meinem .json credentals-Datei? Ich habe ein Dienstkonto Schlüssel:
Alle anderen Vorschläge?
Haben Sie versucht, die (empfohlene) "GOOGLE_APPLICATION_CREDENTIALS" Art der Authentifizierung zu verwenden? Siehe hier: https://googlecloudplatform.github.io/google-cloud-python/stable/google-cloud-auth.html#overview. Können Sie testen, ob das funktioniert? –
Sie treffen möglicherweise diesen Fehler - https://github.com/GoogleCloudPlatform/google-cloud-python/issues/1883 –
Dank @GrahamPolley. Durch den Export des GOOGLE_APPLICATION_CREDENTIALS-Standorts konnte ich den Client mit 'from_service_account_json' instanziieren. Es ist ungewöhnlich, dass ich dies tun müsste, wenn ich bedenke, dass ich den Ort direkt an die 'from_service_account_json'-Funktion übergebe. – AlexG