我有以下功能:
import os,sys
import configparser
from mystrings import *
from mypandas import *
import gspread
import gspread_dataframe as gd
from oauth2client.service_account import ServiceAccountCredentials
def send_data_gsheet(file_id,worksheet_name,df,mode='a'):
gc = gspread_connect()
sh = gc.open_by_key(file_id)
ws = None
try:
ws = sh.worksheet(worksheet_name)
except: #create worksheet if worksheet isn't exist
print("Worksheet '{}' is not found. Creating one...".format(worksheet_name))
sh.add_worksheet(worksheet_name,1000,1000)
ws = sh.worksheet(worksheet_name)
print("Worksheet '{}' created.".format(worksheet_name))
print_text_line(1,"Current worksheet is: '{}'".format(ws.title))
if(mode=='w'):
ws.clear()
gd.set_with_dataframe(worksheet=ws,dataframe=df,include_index=False,include_column_header=True,resize=True)
return True
elif(mode=='a'):
ws.add_rows(df.shape[0])
gd.set_with_dataframe(worksheet=ws
,dataframe=df
,include_index=False
,include_column_header=False
,row=ws.row_count+1
,resize=False)
return True
return False
我可以连接
gspread
。在上面的函数中,我想将数据帧发送到 Google 表格,如果找不到工作表,则自动创建一个表格。我可以使用以下命令调用函数:
send_data_gsheet(file_id = '1qDdOpKoYQ5R4VlP612_T845RJyQni2-V9IuJ676E07c'
,worksheet_name='brand2'
,df=df
,mode='w')
我还可以使用
add_worksheet()
创建新文件。
现在我想知道为什么它不将数据帧发送到 Google 表格中?
它返回以下错误:
超出范围的浮点值不符合 JSON
我该如何解决?