在不使用Counter的情况下将值累计添加到python字典

时间:2018-09-05 11:40:01

标签: python python-3.x mongodb counter

我有以下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),那么它将只是用新值重写字典,而不是向其中添加值。 怎么做?

0 个答案:

没有答案