<p>据我所知,您需要按“时间”对对象进行分组,并合并来自不同进程的计数器。如果是-以下是实施示例:</p>
<pre><code>input_data = {
"0": {
"ProcessName": "Firefox",
"time": "2019-07-12T00:00:00",
"timeFloat": 1562882400.0,
"internal_time": 0.0,
"counter": 0
},
"2": {
"ProcessName": "ZXC",
"time": "2019-07-12T00:00:00",
"timeFloat": 1562882400.0,
"internal_time": 0.0,
"counter": 0
},
"3": {
"ProcessName": "QWE",
"time": "else_time",
"timeFloat": 1562882400.0,
"internal_time": 0.0,
"counter": 0
}
}
def group_input_data_by_time(dict_data):
time_data = {}
for value_dict in dict_data.values():
counter = value_dict["counter"]
process_name = value_dict["ProcessName"]
time_ = value_dict["time"]
common_data = {
"time": time_,
"timeFloat": value_dict["timeFloat"],
"internal_time": value_dict["internal_time"],
}
common_data = time_data.setdefault(time_, common_data)
processes = common_data.setdefault("Processes", {})
processes[process_name] = counter
# if required to change keys from time to enumerated
result_dict = {}
for ind, value in enumerate(time_data.values()):
result_dict[str(ind)] = value
return result_dict
print(group_input_data_by_time(input_data))
</code></pre>
<p>结果是:</p>
<pre><code>{
"0": {
"time": "2019-07-12T00:00:00",
"timeFloat": 1562882400.0,
"internal_time": 0.0,
"Processes": {
"Firefox": 0,
"ZXC": 0
}
},
"1": {
"time": "else_time",
"timeFloat": 1562882400.0,
"internal_time": 0.0,
"Processes": {
"QWE": 0
}
}
}
</code></pre>