0

リスト内のオブジェクトの配列にあるキーで結果をグループ化することは可能ですか?

たとえば、調査回答の表(survey_responses)があり、各エントリが単一の回答を表しているとします。調査の1つ以上の質問は多肢選択式であるため、保存される回答は次のようになります。

survey_responses.insert({
    'name': "Joe Surveylover",
    'ip': "127.0.0.1",
    'favorite_songs_of_2009': [
        {'rank': 1, 'points': 5, 'title': "Atlas Sound: Quick Canals"},
        {'rank': 2, 'points': 4, 'title': "Here We Go Magic: Fangela"},
        {'rank': 3, 'points': 3, 'title': "Girls: Hellhole Ratrace"},
        {'rank': 4, 'points': 2, 'title': "Fever Ray: If I Had A Heart"},
        {'rank': 5, 'points': 1, 'title': "Bear in Heaven: Lovesick Teenagers"}],
    'favorite_albums_of_2009': [
        # and so on
    ]})

配列内の各曲の合計ポイント数を取得するには、 titleofでグループ化するにはどうすればよいですか?favorite_songs_in_2009

4

1 に答える 1

0

あなたの唯一の選択肢はあなた自身のPythonコードでこれを行うことだと思われます:

song_points = {}
for response in survey_responses.find():
    for song in response['favorite_songs_of_2009']:
        title = song['title']
        song_points[title] = song_points.get(title, 0) + song['points']

結果はsong_points変数で取得されます。

于 2009-11-27T04:35:40.473 に答える