Twitter TypeError: 'int' object has no attribute '__getitem__'
Twitter TypeError: 'int' object has no attribute '__getitem__'
我正在尝试学习 Twitter 数据挖掘教程,模拟步骤如下:
tweets_data_path = '/home/ambijat/ipythonnbs/twitter/twitter_data.txt'
tweet_data = []
tweets_file = open(tweets_data_path, "r")
for line in tweets_file:
try:
tweet = json.loads(line)
tweet_data.append(tweet)
except:
continue
然后:
tweets = pd.DataFrame()
tweets['text'] = map(lambda tweet: tweet['text'], tweet_data)
tweets['lang'] = map(lambda tweet: tweet['lang'], tweet_data)
tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweet_data)
结果是:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-a42fce63cc05> in <module>()
1 tweets = pd.DataFrame()
----> 2 tweets['text'] = map(lambda tweet: tweet['text'], tweet_data)
3 tweets['lang'] = map(lambda tweet: tweet['lang'], tweet_data)
4 tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweet_data)
<ipython-input-9-a42fce63cc05> in <lambda>(tweet)
1 tweets = pd.DataFrame()
----> 2 tweets['text'] = map(lambda tweet: tweet['text'], tweet_data)
3 tweets['lang'] = map(lambda tweet: tweet['lang'], tweet_data)
4 tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweet_data)
TypeError: 'int' object has no attribute '__getitem__'
谁能帮我找出我的错误我几乎是新手。
你也可以直接将tweet_data
列表传给json_normalize
:
from pandas.io.json import json_normalize
tweets = json_normalize(tweet_data)[["text", "lang", "place.country"]]
text lang place.country
0 This not the 1st. They hv 1 in Faisalabad alre... en پاکستان
1 RT @TOLOnews: Pakistan Trying To Create Third ... en NaN
2 RT @murtazasolangi: JuD establishes parallel "... en NaN
我正在尝试学习 Twitter 数据挖掘教程,模拟步骤如下:
tweets_data_path = '/home/ambijat/ipythonnbs/twitter/twitter_data.txt'
tweet_data = []
tweets_file = open(tweets_data_path, "r")
for line in tweets_file:
try:
tweet = json.loads(line)
tweet_data.append(tweet)
except:
continue
然后:
tweets = pd.DataFrame()
tweets['text'] = map(lambda tweet: tweet['text'], tweet_data)
tweets['lang'] = map(lambda tweet: tweet['lang'], tweet_data)
tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweet_data)
结果是:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-a42fce63cc05> in <module>()
1 tweets = pd.DataFrame()
----> 2 tweets['text'] = map(lambda tweet: tweet['text'], tweet_data)
3 tweets['lang'] = map(lambda tweet: tweet['lang'], tweet_data)
4 tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweet_data)
<ipython-input-9-a42fce63cc05> in <lambda>(tweet)
1 tweets = pd.DataFrame()
----> 2 tweets['text'] = map(lambda tweet: tweet['text'], tweet_data)
3 tweets['lang'] = map(lambda tweet: tweet['lang'], tweet_data)
4 tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweet_data)
TypeError: 'int' object has no attribute '__getitem__'
谁能帮我找出我的错误我几乎是新手。
你也可以直接将tweet_data
列表传给json_normalize
:
from pandas.io.json import json_normalize
tweets = json_normalize(tweet_data)[["text", "lang", "place.country"]]
text lang place.country
0 This not the 1st. They hv 1 in Faisalabad alre... en پاکستان
1 RT @TOLOnews: Pakistan Trying To Create Third ... en NaN
2 RT @murtazasolangi: JuD establishes parallel "... en NaN