Задача: У меня есть фрейм данных, и я хотел бы добавить эти данные в Google Sheet. Лист имеет те же столбцы, что и DF, и содержит существующие данные, которые я не хочу перезаписывать, а просто добавляю строки в конец листа, используя значения из DF.
Пробовал до сих пор:
- Я следил за документацией по golid, используя этот код:
import json
df2.to_json(orient = 'columns')
values = df2.to_json(orient = 'columns')
wks.append_row (values, value_input_option='USER_ENTERED')
Результат : APIError: {"error": {"code": 400, "message": "Недопустимое значение в 'data.values [0]' (type.googleapis.com/google.protobuf.ListValue),
Я следовал документации по справочнику API Google:
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append !pip install --upgrade google-api-python-client
from pprint import pprint
from googleapiclient import discovery
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/drive.file',
'https://www.googleapis.com/auth/spreadsheets']
credentials = ServiceAccountCredentials.from_json_keyfile_name('NAME.json', scope)
gc = gspread.authorize(credentials)
wks = gc.open("SHEETNAME").sheet1
service = discovery.build(wks,'v1', credentials)
spreadsheet_id = 'MYID'
value_input_option = INSERT_ROWS
values = df2.to_json(orient = 'columns')
insert_data_option = values
request = service.spreadsheets().values().append(spreadsheetId=spreadsheet_id, range=range_, valueInputOption=value_input_option, insertDataOption=insert_data_option, body=value_range_body)
response = request.execute()
pprint(response)
Результат: AttributeError: у объекта 'ServiceAccountCredentials' нет атрибута 'request'
Вопрос: Является ли любое из этих решений правильным подходом и как я могу исправить ошибки? Или есть совершенно другой вариант, который намного проще?
Спасибо!