Как обновить нижнюю строку (первую пустую строку) листа данными с помощью pygsheets? - PullRequest
2 голосов
/ 21 июня 2020

У меня есть электронная таблица, связанная с модулем 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)  
    

1 Ответ

2 голосов
/ 22 июня 2020

Я считаю, что ваша цель и ситуация следующие.

  • Вы хотите добавить значения в следующую строку последней строки электронной таблицы, используя таблицы pygsheets с python.
  • Вы уже могли получать и помещать значения в электронную таблицу Google с помощью API таблиц.

Для этого, как насчет этого ответа? В этом ответе я предлагаю использовать метод append_table. Для этого сначала создаются значения для помещения в лист, а затем созданные значения помещаются на лист методом 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 добавляется к следующей строке последней строки листа. wks.
  • В спецификации pygsheets кажется, что когда overwrite=True изменяется на overwrite=False, новые строки добавляются и помещаются в значения.

Ссылка:

...