I have a list of OrderedDicts in the following form:
[OrderedDict([('id', 1), ('created_at', '15-04-2022 10:27:37'), ('dr_notice_period', 15), ('dr_duration', 30), ('dr_request', 1000.0), ('user_id_event', None)]), OrderedDict([('id', 2), ('created_at', '15-04-2022 10:27:37'), ('dr_notice_period', 15), ('dr_duration', 30), ('dr_request', 1000.0), ('user_id_event', 1)])]
I want to manipulate the above list and produce an output of the following form:
[
{
"number": 0,
"created_at": "15-04-2022 10:27:37",
"dr_notice_period": 15,
"dr_duration": 30,
"dr_request": 1000.0
},
{
"number": 1,
"created_at": "15-04-2022 10:27:37",
"dr_notice_period": 15,
"dr_duration": 30,
"dr_request": 1000.0
}
]
What I am doing right now is to use two for loops to iterate over all the elements and create the output list:
output = []
for i in range(len(input)):
temp = {}
for key, value in input[i].items():
temp["number"] = i
if key == "dr_notice_period":
temp[key] = value
if key == "dr_duration":
temp[key] = value
if key == "dr_request":
temp[key] = value
if key == "created_at":
temp[key] = value
output.append(temp)
Is there a better and more efficient way to do it by avoiding the nested for loops?