如何在没有他的错误的情况下标记推文列表?
how to tokenize a list of tweets without his errors?
我目前正在开发一个程序来检索关于给定主题的推文列表。在那之前,我设法检索它们并将它们保存在完美的 JSON 文件中。
当我尝试 "tokenize" 此推文列表时出现问题。
我遇到以下错误:
Traceback (most recent call last):
File "C:\Users\TheoLC\Desktop\python\twitter_search\collect+200tw.py", line 77, in <module>
tweet_token = tweet['text'].tokenize()
TypeError: string indices must be integers
这是代码:
with open("%s_tweets.json" % search_word, 'a') as f:
for tweet in new_tweets:
json.dump(tweet._json, f, indent=4)
with open("%s_tweets.json" % search_word, 'r+') as f:
for tweet in f:
tweet_token = tweet['text'].tokenize()
print('Tweet tokenize : ' + tweet_token)
我还有第二个担心是:
在我的程序中,我将搜索词翻译成多种语言,以便从我的 JSON 文件中获取尽可能多的推文。
问题是,我希望所有推文都翻译成英文,而不是 JSON 包含来自多种语言的多条推文。
所以我尝试按如下方式应用逆过程:
for tweet in new_tweets_fi:
tweet['text'] = translator.translate(tweet['text'], src='fi', dest='en')
print("Les tweets en finlandais ont été traduis")
for tweet in new_tweets_fr:
tweet['text'] = translator.translate(tweet['text'], src='fr', dest='en')
print("Les tweets en francais ont été traduis")
这是返回的错误:
Traceback (most recent call last):
File "C:\Users\TheoLC\Desktop\python\twitter_search\collect+200tw.py", line 52, in <module>
tweet['text'] = translator.translate(tweet['text'], src='fi', dest='en')
TypeError: 'Status' object is not subscriptable
非常感谢那些能够帮助我的人
这两个错误都是相关的,并且与您尝试访问 tweet['text']
.
的事实有关
当您遍历文件对象时,每一项都是一个字符串。 (更具体地说,是文件中的一行文本。)所以在第一个代码示例中,tweet
是一个字符串,没有 tweet['text']
这样的东西
with open("%s_tweets.json" % search_word, 'r+') as f:
for tweet in f:
# do stuff with tweet (a string)
在第二个示例中,我不确定 new_tweets_fi
和 new_tweets_fr
是什么类型的数据结构,但看起来当你迭代它们时,你会得到一个 Status
目的。我也不确定那个对象是什么样的,但不管它是什么,你都不能像字符串或字典那样对它进行索引。 (参见 In Python, what does it mean if an object is subscriptable or not?)
我目前正在开发一个程序来检索关于给定主题的推文列表。在那之前,我设法检索它们并将它们保存在完美的 JSON 文件中。
当我尝试 "tokenize" 此推文列表时出现问题。
我遇到以下错误:
Traceback (most recent call last):
File "C:\Users\TheoLC\Desktop\python\twitter_search\collect+200tw.py", line 77, in <module>
tweet_token = tweet['text'].tokenize()
TypeError: string indices must be integers
这是代码:
with open("%s_tweets.json" % search_word, 'a') as f:
for tweet in new_tweets:
json.dump(tweet._json, f, indent=4)
with open("%s_tweets.json" % search_word, 'r+') as f:
for tweet in f:
tweet_token = tweet['text'].tokenize()
print('Tweet tokenize : ' + tweet_token)
我还有第二个担心是:
在我的程序中,我将搜索词翻译成多种语言,以便从我的 JSON 文件中获取尽可能多的推文。
问题是,我希望所有推文都翻译成英文,而不是 JSON 包含来自多种语言的多条推文。
所以我尝试按如下方式应用逆过程:
for tweet in new_tweets_fi:
tweet['text'] = translator.translate(tweet['text'], src='fi', dest='en')
print("Les tweets en finlandais ont été traduis")
for tweet in new_tweets_fr:
tweet['text'] = translator.translate(tweet['text'], src='fr', dest='en')
print("Les tweets en francais ont été traduis")
这是返回的错误:
Traceback (most recent call last):
File "C:\Users\TheoLC\Desktop\python\twitter_search\collect+200tw.py", line 52, in <module>
tweet['text'] = translator.translate(tweet['text'], src='fi', dest='en')
TypeError: 'Status' object is not subscriptable
非常感谢那些能够帮助我的人
这两个错误都是相关的,并且与您尝试访问 tweet['text']
.
当您遍历文件对象时,每一项都是一个字符串。 (更具体地说,是文件中的一行文本。)所以在第一个代码示例中,tweet
是一个字符串,没有 tweet['text']
with open("%s_tweets.json" % search_word, 'r+') as f:
for tweet in f:
# do stuff with tweet (a string)
在第二个示例中,我不确定 new_tweets_fi
和 new_tweets_fr
是什么类型的数据结构,但看起来当你迭代它们时,你会得到一个 Status
目的。我也不确定那个对象是什么样的,但不管它是什么,你都不能像字符串或字典那样对它进行索引。 (参见 In Python, what does it mean if an object is subscriptable or not?)