1
Это мой код. когда я запускаю этот код я получаю сообщение об ошибке рейза исключение TypeError: строковые индексы должны быть целыми числамиПолучить местоположение с помощью json и tweepy?
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import time
import MySQLdb
import simplejson
from HTMLParser import HTMLParser
db = MySQLdb.connect(
host = 'localhost',
user = 'root',
passwd='',
db='python',
charset='utf8',
use_unicode=True
)
cursor=db.cursor()
ckey = ''
csecret = ''
atoken = ''
asecret = ''
class listener(StreamListener):
def on_data(self, data):
all_data = simplejson.loads(HTMLParser().unescape(data))
#all_data = simplejson.loads(data)
# check to ensure there is text in
# the json data
if 'text' in all_data:
tweet = all_data["text"]
username = all_data["user"]["screen_name"]
я добавить это заявление, чтобы получить расположение, но это оленья кожа работа
place= data['place']['full_name']
#location1= all_data["location"]
cursor.execute(
"INSERT INTO tweeter (time, username, tweet,location) VALUES (%s,%s,%s,%s)",
(time.time(), username, tweet,place))
db.commit()
print((username,tweet))
return True
else:
return True
эта функция def on_status добавлена мной после получения некоторой помощи из интернета
def on_status(self, status):
if status.place:
print 'place:', status.place.full_name
return True
on_event = on_status
def on_error(self, status):
print(status)
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream (auth ,listener())
twitterStream.filter(track=["Earthquake"],languages = ["en"], stall_warnings = True)
Помогите мне решить мою проблему. Благодарю вас
Знаете ли вы, на какой строке ошибка бросают? – andersschuller
я думаю, что на месте = данные [ "место"] [ "ПолноеИмя] Защиту on_status (самость, статус): если status.place: печать 'место:', status.place.full_name возвращающие on_event = on_status – SmartF