如何使用 pygsheets 用数据更新 sheet 的底行(第一个空行)?

How to update the bottom row(first empty row) of sheet with data using pygsheets?

我有一个与 python 模块链接的电子表格,其中包含 3 列。我尝试使用 insert_rows 函数插入新的数据行,但它没有做任何事情,也没有抛出任何错误,这让我更难缩小问题范围。

这是我尝试过的:

gc = pygsheets.authorize(service_file='File.json')

sh = gc.open('TwitterStream')

wks = sh[0]

t = Twython('ckey ','c_secret ')

results = t.search(q='tuberculosis', count=5, lang='en', result_type='popular',tweet_mode='extended')
all_tweets = results['statuses']

for tweet in all_tweets:
        tweetString = tweet["full_text"]
        userMentionList = tweet["entities"]["user_mentions"]
        if len(userMentionList)>0:
            for eachUserMention in userMentionList:
                name = eachUserMention["screen_name"]
                time = tweet["created_at"]
//This is the function
                wks.insert_rows(wks.rows, number=1,values=[tweetString, name, time], inherit=True)  
    

我相信你的目标和情况如下。

  • 您想使用带有 python 的 pygsheets 将值附加到 Spreadsheet 最后一行的下一行。
  • 您已经能够使用表格 API.
  • 获取值并将值放入 Google Spreadsheet

为此,这个答案怎么样?在这个回答中,我想建议使用append_table的方法。为此,首先创建要放入 sheet 的值,然后使用 append_table.

的方法将创建的值放入 sheet

修改后的脚本:

当你的脚本修改后,变成如下。

从:
for tweet in all_tweets:
        tweetString = tweet["full_text"]
        userMentionList = tweet["entities"]["user_mentions"]
        if len(userMentionList)>0:
            for eachUserMention in userMentionList:
                name = eachUserMention["screen_name"]
                time = tweet["created_at"]
                wks.insert_rows(wks.rows, number=1,values=[tweetString, name, time], inherit=True)  
到:
values = []  # Added
for tweet in all_tweets:
    tweetString = tweet["full_text"]
    userMentionList = tweet["entities"]["user_mentions"]
    if len(userMentionList) > 0:
        for eachUserMention in userMentionList:
            name = eachUserMention["screen_name"]
            time = tweet["created_at"]
            values.append([tweetString, name, time])  # Added

wks.append_table(values, start='A1', end=None, dimension='ROWS', overwrite=True)  # Added
  • 在这个修改中,values被追加到sheet最后一行的下一行wks
  • 在pygsheets的规范中,似乎当overwrite=True被修改为overwrite=False时,新的行被添加并放入值中。

参考: