【问题标题】:How to append data in a GoogleSheet using Python如何使用 Python 在 Google 表格中附加数据
【发布时间】:2021-08-20 08:47:23
【问题描述】:

我有一个带有数据的谷歌表,但每天都有一个问题我必须放置数据(相同类型的数据),有人知道如何使用 python 在谷歌表中附加数据,帮助我。

我有那种类型的结果,那是在字符串中

print(time, " ", todayMaxProfit, " ", todayMaxLoss, " ", pl, " ", len(
orderList), " First pair sum:- ", int(orderList[0][4]+orderList[1][4]))

"2021-08-18 15:00:00  [1451, '2021-08-18 11:07:00']  [-10203, '2021-08-18 14:45:00']  -6900  2  First pair sum:-  234"

我想最后追加数据。

【问题讨论】:

  • 你尝试了什么?为此有python模块。并且您应该使用一些代码在 Stackoveflow 上找到许多问题。或者你甚至可以在网上找到一些教程。
  • 您的数据从何而来?
  • @iansedano 我制作了一个 python 脚本,它从斯托克市场收集数据,它给了我一些结果,比如一条线结果,我必须每天在工作表上添加它,这就是我问这个的原因。跨度>
  • 你能发布一个你得到的结果样本吗?
  • @iansedano 2021-08-18 15:00:00 [1451, '2021-08-18 11:07:00'] [-10203, '2021-08-18 14:45:00'] -6900 2 First pair sum:- 234 这是上周三的结果。

标签: python python-3.x google-sheets google-sheets-api


【解决方案1】:

如何使用 Python 将值附加到 Google 电子表格。

  1. 按照quickstart 进行设置。确保您完全按照所有步骤操作!您需要为您启动的每个使用 API 的项目执行此操作,因此您不妨按照此处的说明进行操作。确保在继续之前获得预期的输出!

  2. 然后您可以修改快速入门以使获取service 成为一个单独的函数:

def getService():
    creds = None
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        with open('token.json', 'w') as token:
            token.write(creds.to_json())

    return build('sheets', 'v4', credentials=creds)
  1. 获得服务后,您可以调用 Sheets API。例如:
service = getService()
appendValues(service)
            
values = [
    [time, todayMaxProfit, todayMaxLoss, pl, len(orderList), int(orderList[0][4]+orderList[1][4])]
]
    
body = {'values': values}
result = service.spreadsheets().values().append(
    spreadsheetId="13rdolwpUD4h4RTuEgn1QbtgPMpJiZGMFubdh4loAfNQ", range="Sheet1!A1",
    valueInputOption="RAW", body=body).execute()

注意values 的格式必须是二维列表。:

[
    [A1, B1, C1],
    [A2, B2, C2]
]

使用append 方法,只需将行按原样添加到工作表的末尾。 append 有几个参数:

  • spreadsheetId - 您要将值附加到的电子表格的id
  • range - 找到数据的粗略范围。 Sheets API 将尝试评估 Sheet 中的数据并猜测最后一行的位置。通常,如果您的表格中填充了从A1 到底部的数据,则可以将其保留为A1,或者如果您有标题或空格,则可以保留为C5。这个想法是将 API 指向您要附加到的数据集合。
  • valueInputOption - 这通常可以保留为“RAW”,它只是在传递数据时插入数据。
  • body,你有你的二维数据列表。

参考文献

【讨论】:

    【解决方案2】:

    您好,您可以试试 pygsheets,它效果很好,而且易于使用。

    import pygsheets
    gc = pygsheets.authorize(service_file='creds.json')
    sh = gc.open('sheetname')  # Open GoogleSheet
    worksheet1 = sh.worksheet('title', 'worksheetname')  # choose worksheet to work with
    worksheed1.append_table(values=["Date", "blah", 1, '\'+', "ect"])  # append row to worksheet
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      相关资源
      最近更新 更多