У меня есть проект, чтобы практиковать свои навыки Python:Модифицированный tweepy потока класс
- Чтобы извлечь некоторые твиты координаты с Tweepy потока
- Чтобы поместить их в таблицу Google
- Затем используйте таблицу Google, чтобы создать карту в CartoDB
Я уже могу делать все это самостоятельно. Теперь задача состоит в том, чтобы все работало вместе! :)
Чтобы обновить таблицу Google, я использую gspread.
Однако, чтобы обновить ячейку, мне нужно указать строку и столбец ячейки, как это:
worksheet.update_acell('B1', 'Bingo!')
Я пытаюсь иметь счетчик в моем сценарии извлечения твитов. Цель состоит в том, чтобы B1 изменился на B2, затем B3, затем B4, каждый раз, когда найден твит.
Но это не работает ... Координаты печатаются на моем терминале, но это все.
Я думаю, что я не использую класс, как я предполагаю. Но я не понимаю, где моя ошибка!
Помощь?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tweepy
import gspread
import time
CONSUMER_KEY, CONSUMER_SECRET = 'SECRET', 'SECRET'
USER_KEY, USER_SECRET = 'SECRET', 'SECRET'
class MyStream(tweepy.StreamListener):
def __init__(self):
tweepy.StreamListener.__init__(self)
# I added this to have a counter.
self.n = 2
def on_status(self, tweet):
try:
longitude = str(tweet.coordinates['coordinates'][0])
latitude = str(tweet.coordinates['coordinates'][1])
print longitude
print latitude
# I added this to update my google spreadsheet with the coordinates
self.wks.update_acell(('A' + str(n)), longitude)
self.wks.update_acell(('B' + str(n)), latitude)
print "Spreadsheet updated!"
# This is for my counter
self.n += 1
except:
pass
def main():
#I added these two lines to connect to my google spreadsheet
gc = gspread.login('EMAIL', 'PASSWORD')
wks = gc.open('SPREADSHEET_NAME').sheet1
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(USER_KEY, USER_SECRET)
stream = tweepy.Stream(auth, MyStream(), timeout=50)
stream.filter(locations=[-74.00,45.40,-73.41,45.72])
if __name__ == "__main__":
main()
Не должно быть 'str (self.n)'? – jonrsharpe
Благодарим за предложение! Я просто попробовал. Тем не менее то же самое ... – Nael