Накопительное добавление значений в словарь Python без использования счетчика - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть следующая mongoDBschema- ObjectID - это несколько записей в базе данных, в которой хранятся дополнительные данные.

ObjectId("a")
    posts
        [0]
            comments
                [0]
                    comment
                    fb_id
        [1]
        [2]
        [3]
        [4]

ObjectId("b")
ObjectId("c")

Я пытаюсь кумулятивно добавить значение чувства, я назначаю словарь для каждого комментария, соответствующего каждому fb_id. Я пытался использовать метод счетчика, но его значения очищаются перед автоматическим вводом комментария другого идентификатора. Ранее я задавал этот вопрос - Кумулятивно добавляйте значения в словарь Python , и вывод, который я получил, ниже -

 Counter({'100002204201460': 0.0})
 Counter({'100002204201460': 0.0, '100025548426588': -0.592})
 Counter({'1490834948': 0.5792,
     '100002204201460': 0.0,
     '100025548426588': -0.592})

Счетчик очищается перед тем, как войти в другой комментарий того же поста.

Моя реализация-

 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)

Как это сделать правильно, я просто хочу кумулятивно добавлять значения, не теряя ни одно из значений, как в настоящее время, я теряю с помощью счетчика.

Ввод в один из идентификаторов объекта

 {
  "_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"
            }
          ]
         ]
       }

Вывод , если используется стандартный словарь без счетчика, как показано ниже

 {'100002204201460': 0.0}
 {'100002204201460': 0.0, '100025548426588': -0.296}

Это просто пример вывода, не все значения включены. Но проблема в том, что если моя программа встретит такое же значение fb_id (которое составляет 100002204201460) в более поздних публикациях, то она просто перезапишет словарь новыми значениями, а не добавит значения к нему. Как это сделать?

...