我有以下mongoDBschema-
ObjectID是数据库中的多个条目,其中存储了更多数据。
ObjectId("a")
posts
[0]
comments
[0]
comment
fb_id
[1]
[2]
[3]
[4]
ObjectId("b")
ObjectId("c")
我正在尝试累加情感值,我将与每个fb_id对应的每个注释分配给字典。我尝试使用计数器方法,但是在自动输入另一个ID的注释之前,其值是空的。 之前,我问了这个问题-Cumulatively add values to python dictionary,收到的输出如下-
Counter({'100002204201460': 0.0})
Counter({'100002204201460': 0.0, '100025548426588': -0.592})
Counter({'1490834948': 0.5792,
'100002204201460': 0.0,
'100025548426588': -0.592})
在输入同一条帖子的另一条评论之前,Counter会清空自己。
我的实现-
for doc in result:
dict_of_comments = Counter()
for post in doc['posts']: # traverse each user's post
if 'comments' in post:
for com in post['comments']:
s=com['comment']
vs=analyzer.polarity_scores(s) //sentiment analyser
dict_of_comments[com['fb_id']] += vs['compound']
pprint.pprint(dict_of_comments)
如何正确执行操作,我只想累计添加值,而不会像现在那样丢失任何值,因此我正在使用Counter。
输入其中一个objectID
{
"_id" : ObjectId("5b7fa2a745d12b10324d3a01"),
"date_time" : "24, Aug 2018 11:44",
"original_query" : "sanjeevnewar",
"posts" : [
"comments" : [
{
"comment" : "आशीष जी को कोटि कोटि प्रणाम।",
"commentator" : "Amrit Kumar Deb",
"fb_id" : "100002204201460"
},
{
"comment" : "Double standard is not going to work Stop ogling over Muslim women",
"commentator" : "Akif Khan",
"fb_id" : "100025548426588"
}
]
]
}
输出,如果在不使用Counter的情况下使用标准字典,则如下所示:
{'100002204201460': 0.0}
{'100002204201460': 0.0, '100025548426588': -0.296}
这只是一个示例输出,并非包括所有值。
但是问题是,如果我的程序在以后的文章中遇到相同的fb_id值(即100002204201460
),那么它将只是用新值重写字典,而不是向其中添加值。
怎么做?