Как вставить лист Excel или CSV в Google Sheets с помощью пиг-листов (с пандами или без них)? - PullRequest
2 голосов
/ 17 мая 2019

У меня есть некоторые данные в листе Excel, мне нужно программно иметь возможность вставить их в лист Google с помощью короткого скрипта на python. Я использую пиг листов и панд (если мне это нужно). У меня настроена аутентификация, и я могу получить доступ к листу, в который я хочу вставить данные; это просто фактическая вставка с использованием таблиц, с которыми у меня возникают проблемы. Вот некоторый код:

from google.oauth2 import service_account
import pygsheets
import pandas as pd
import json

# set settings file
settings_file = open("/Users/user/Desktop/settings.json", "r").read()
settings = json.loads(settings_file)
creds = settings['oauth_creds']
credentials = service_account.Credentials.from_service_account_info(creds)
scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/spreadsheets']
)

# set dataframe as excel sheet (saved on Desktop)
new_data = pd.read_excel('/Users/user/Desktop/test-data.xlsx', None)

# instantiate pygsheets with credentials
gc = pygsheets.authorize(custom_credentials=scoped_credentials)

# open spreadsheet with URL
sheet_url = settings['sheet_url']
sh = gc.open_by_url(sheet_url)

# activate correct sheet
sheet_name = settings['data_sheet']
wks = sh.worksheet_by_title(sheet_name)

# empty active sheet
wks.clear()

# add dataframe to active sheet
wks.set_dataframe(new_data,(1,1))

Когда я запускаю скрипт, я получаю сообщение об ошибке в последней строке: AttributeError: 'OrderedDict' object has no attribute 'replace'. Есть идеи, как правильно отправить данные на лист? Кроме того, если это проще, я могу сделать это с помощью CSV; Мне также не нужно использовать панд, если без этого легче. Любая помощь приветствуется!

...