如何在没有他的错误的情况下标记推文列表?

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_finew_tweets_fr 是什么类型的数据结构,但看起来当你迭代它们时,你会得到一个 Status 目的。我也不确定那个对象是什么样的,但不管它是什么,你都不能像字符串或字典那样对它进行索引。 (参见 In Python, what does it mean if an object is subscriptable or not?