前提・実現したいこと
下記のJSONデータから'event_id'と'event_name'があるものだけ、
'event_name'ごとに集計し、'event_id'と'event_name'とあわせて表示させたいです。
数の集計はできたのですが、'event_id'と'event_name'を同じ{}内に表示させるのにうまくいかず悩んでいます。
###json_data
[ { "id": "001", "no": "001", "timestamp": 1617185234, "event_id": 2, "event_name": "b" }, { "id": "001", "no": "1010", "timestamp": 1618296823, "event_id": 3, "event_name": "c" }, { "id": "001", "no": "102", "timestamp": 1617185290 }, { "id": "002", "no": "102", "timestamp": 1617186107 } ....
出力結果
[ "{"a_count": 10}", "{"b_count": 20}", "{"c_count": 30}", "{"d_count": 40}" ]
該当のソースコード
def counter(): a_count = Counter(v for d in json_data for v, v in d.items() if str(v).startswith('a')) b_count = Counter(v for d in json_data for v, v in d.items() if str(v).startswith('b')) c_count = Counter(v for d in json_data for v, v in d.items() if str(v).startswith('c')) d_count = Counter(v for d in json_data for v, v in d.items() if str(v).startswith('d')) showcount = json.dumps(a_count),json.dumps(b_count),json.dumps(c_count),json.dumps(d_count) return show_count
実現したいこと
[ { "event_id": 1, "event_name": "a" ,"a_count": 10}, { "event_id": 2, "event_name": "b", "b_count": 20} , { "event_id": 3, "event_name": "c", "c_count": 30}, { "event_id": 4, "event_name": "d", "d_count": 40} ]
文字列として追加させようとしたのですが、
"event_id": 1, "event_name": "a" ,{"a_count": 10}
となってしまいやめました。。
回答1件
あなたの回答
tips
プレビュー