如何使用 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
时,新的行被添加并放入值中。
参考:
我有一个与 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
.
修改后的脚本:
当你的脚本修改后,变成如下。
从: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
时,新的行被添加并放入值中。