Python GSpead On-Change侦听器?

时间:2018-10-09 12:31:55

标签: python python-3.x gspread

我正在编写一个脚本,该脚本从google表单检查google表格,并以民意调查的实时显示形式返回结果。我需要弄清楚如何更新值计数,但仅当Google工作表更新时才可以,而不是每60秒(或每秒钟)检查一次。

这是我当前的设置:

string = ""

while True:
    responses = gc.open("QOTD Responses").sheet1
    data = pd.DataFrame(responses.get_all_records())
    vals = data['Response'].value_counts()
    str = "{} currently has {} votes. \n{} currently has {} votes.".format(vals.index[0], vals[0], vals.index[1],
                                                                           vals[1])
    if(str != string):
        string = str
        print(string)
    time.sleep(60) # Updates 1440 times per day

我几乎可以肯定,必须有一种更好的方法来做到这一点,那会是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

仅靠Python您将无法做到这一点。您需要与trigger function from Google Apps script集成。

您可以使用onEdit触发函数将信号发送到python脚本(例如,通过http调用)。

  

要使用简单的触发器,只需创建一个使用以下功能之一的函数   这些保留的函数名称:

     
      
  • onOpen(e)在用户打开电子表格,文档,   演示文稿或用户有权编辑的表单。

  •   
  • onEdit(e)在用户更改电子表格中的值时运行。

  •