【问题标题】:How are google sheets api quotes counted?google sheet api 报价是如何计算的?
【发布时间】:2019-10-24 06:21:27
【问题描述】:

我有一个 Python 代码,每分钟通过 api 读取谷歌表格。一段时间后,我面临资源耗尽错误。 第一个问题是如何捕捉这个异常? 其次,最重要的是,这些 qoutes 是如何计算的? IE。我有一个函数调用,它开始与工作表进行通信,然后读取 20 行。那么它是一个报价,还是其中的 20 个?

try:
        scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
        creds = ServiceAccountCredentials.from_json_keyfile_name('/home/pi/Downloads/MeteoStation.json', scope)
        client = gspread.authorize(creds)
    except:
        logging.error("Sheets settings opening error")
        return None
    else:
        sheet = client.open('Sheetname').worksheet("Settings")
        send_regular_sms=str(sheet.cell(4,5).value)
        send_pressure_sms=str(sheet.cell(6,5).value)
        measuring_diff=float(sheet.cell(8,5).value)
        pressure_diff=float(sheet.cell(10,5).value)
        sms_delay=float(sheet.cell(12,5).value)
        sms_pressure_stop=float(sheet.cell(14,5).value)
        return [client,send_regular_sms,send_pressure_sms]

【问题讨论】:

  • 为了正确了解您的情况,能否提供您当前的脚本?当然,请删除您的个人信息。
  • 我已经添加了它。为了不长,它被缩短了,但你可以感觉到背后的想法是什么
  • 感谢您回复并添加脚本。在您的脚本中,似乎使用一个 API 来检索一个值。例如,这个流程怎么样? 1. 通过一个 API 检索所有值。 2. 从检索到的值中解析每个值。这样,可以减少API的使用次数。如果这不是你想要的方向,我必须道歉。
  • 所以您建议使用spreadsheets.values.get(),然后在返回之前合并这些值?
  • 感谢您的回复。我认为在您的情况下,可以使用 gspread 。那么例如,使用get_all_values()的方法怎么样? Ref

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


【解决方案1】:

为了处理错误,您可以使用 googleapiclient 模块

要安装它,请使用:

pip install google-api-python-client

那么就这样使用try/except吧:

from googleapiclient.errors import HttpError
try:
   ...
except HttpError as err:
    print(err)

关于您问题的另一部分,请使用方法 .row_values(),您可以在第 13 页的文档 here 中看到该方法,这样您就可以获得所有行并保存一些调用,但无论如何请记住限制在 Google Sheets API 文档中显示 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    相关资源
    最近更新 更多