Функция download_as_string()
возвращает байты, но from_json_keyfile_dict()
ожидает dict
. Вам нужно сначала декодировать байты, чтобы превратить его в строку:
json_data_string = blob.download_as_string().decode('utf8')
, а затем загрузить эту строку как dict
:
import json
json_data_dict = json.loads(json_data_string)
И затем вы можете вызвать:
credentials = ServiceAccountCredentials.from_json_keyfile_dict(
json_data_dict,
scopes=['https://www.googleapis.com/auth/analytics',
'https://www.googleapis.com/auth/analytics.edit'])