我有一些数据在Excel工作表中,我需要能够以编程方式插入到谷歌工作表通过一个简短的python脚本。我正在使用pygsheet和pandas (如果我需要的话)。我已经设置了auth内容,并且能够访问我想要插入数据的工作表;这只是使用pygsheet进行的实际插入,我遇到了问题。下面是一些代码:
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来做这件事;如果没有它,我也不需要使用熊猫。如有任何帮助,我们不胜感激!
发布于 2020-05-19 01:46:19
使用Google sheets创建Generate credential文件,并将其命名为creds.json
项目的
<>G214
然后尝试:
import pygsheets
def upload_to_gsheet(df, sheet_number):
gc = pygsheets.authorize(service_file=/path/to/creds.json)
sh = gc.open_by_key(spreadsheet_id)
wks = sh[sheet_number]
wks.set_dataframe(df, (1, 1))https://stackoverflow.com/questions/56176619
复制相似问题