我目前正在开发一个程序,用于检索有关给定主题的推文列表。在此之前,我设法检索它们并将它们保存在一个完美的JSON文件中。
当我尝试“标记”此推文列表时,问题就来了。
我遇到以下错误:
public class Node
{
public string Name { get; set; }
public ObservableCollection<Node> Nodes { get; set; }
}
public class FooModel
{
public ObservableCollection<Node> Items { get; set; }
Random rnd = new Random();
public FooModel()
{
Items = new ObservableCollection<Node>
{
new Node
{
Name ="Europe",
Nodes = new ObservableCollection<Node>
{
new Node {Name="Germany" },
new Node {Name="France" },
new Node
{
Name ="Great Britain",
Nodes = new ObservableCollection<Node>
{
new Node {Name="England" },
new Node {Name="Scotland" },
new Node {Name="Wales" },
new Node {Name="North Ireland" },
}
}
}
},
new Node
{
Name ="Asia",
Nodes = new ObservableCollection<Node>
{
new Node {Name="China" },
new Node {Name="Japan" },
new Node { Name ="India" }
}
},
new Node { Name="Afrika" },
new Node { Name="USA" },
new Node { Name="Australia" }
};
}
}
这是代码:
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
我还有第二个担忧:
在我的程序中,我将搜索词翻译成几种语言,以便从JSON文件中获得尽可能多的推文。
问题是,我希望将所有推文都翻译成英文,而不是从多个语言中获取带有多个推文的JSON。
因此,我尝试按如下方法应用相反的过程:
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)
这是回来的错误:
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")
非常感谢那些能够帮助我的人
答案 0 :(得分:0)
这两个错误都相关,并且与您尝试访问{math|stats}.stackexchange
的事实有关。
当您遍历文件对象时,每个项目都是一个字符串。 (更具体地说,是文件中的一行文本。)因此,在第一个代码示例中,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
对象。我也不确定该对象的外观,但是无论它是什么,您都无法像使用字符串或字典一样对其进行索引。 (请参见In Python, what does it mean if an object is subscriptable or not?)