Мне удалось получить Python для чтения из Google Sheet. Однако, поскольку я использую сценарий из PowerBI для чтения из Google Sheet, я не могу использовать файл локального секретного ключа JSON на своем компьютере, так как PowerBI не может получить доступ к этому файлу. В настоящее время я подключаюсь к листу следующим образом:
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json(r'C:\Users\Laila\Documents\google_spreadsheet_secret_key.json', scope)
gc = gspread.authorize(credentials)
return gc,credentials
Я хотел бы сделать что-то вроде этого:
secret_key={xxx:xxx}
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json(secret_key)
gc = gspread.authorize(credentials)
return gc,credentials
Возможно ли это?
Я уже пытался добавить секретный ключ с JSON создает дамп и добавляет его таким образом, что выдает следующую ошибку:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-85-0b15fbe84ead> in <module>
----> 8 onboarding_yearmonth=get_onboarding_year_month()
<ipython-input-30-ff93a4b40320> in get_onboarding_year_month()
1 def get_onboarding_year_month():
----> 2 onboarding_sheet = read_onboarding_sheet()
3 onboarding_row=onboarding_sheet.loc[onboarding_sheet['ID'] == str(client_id)]
4 onboarding_row = onboarding_row.iloc[0]['Live date']
5 onboarding_dt = parse(onboarding_row)
<ipython-input-28-d0961c0ce7d1> in read_onboarding_sheet()
1 def read_onboarding_sheet():
----> 2 gc,credentials = connect_to_gsheets()
3 spreadsheet_key = '1zeUiWGMWp-xxx'
4 spreadsheet = gc.open_by_key(spreadsheet_key)
5 worksheet = spreadsheet.worksheet("Onboarding Dates")
<ipython-input-82-7b436cef1e5e> in connect_to_gsheets()
1 def connect_to_gsheets():
2 scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
----> 3 credentials = ServiceAccountCredentials.from_json(secret_key)
4 gc = gspread.authorize(credentials)
5 return gc,credentials
c:\users\laila\appdata\local\programs\python\python36-32\lib\site-packages\oauth2client\service_account.py in from_json(cls, json_data)
440 password = None
441 if pkcs12_val is None:
--> 442 private_key_pkcs8_pem = json_data['_private_key_pkcs8_pem']
443 signer = crypt.Signer.from_string(private_key_pkcs8_pem)
444 else:
KeyError: '_private_key_pkcs8_pem'