有一个对象数组
status_data = [
{
"id": "id_1",
"like": [
{
"status": "xx",
"sum": 70
}
],
},
{
"id": "id_2",
"like": [
{
"status": "xx",
"sum": 8
},
{
"status": "zz",
"sum": 4
}
]
}
]
第二个对象数组
status_static = [
{
"status": "xx",
"sum": 0
},
{
"status": "zz",
"sum": 0
},
{
"status": "yy",
"sum": 0
}
]
所需结果
result = [
{
"id": "id_1",
"like": [
{
"status": "xx",
"sum": 70
},
{
"status": "zz",
"sum": 0
},
{
"status": "yy",
"sum": 0
}
],
},
{
"id": "id_2",
"like": [
{
"status": "xx",
"sum": 0
},
{
"status": "yy",
"sum": 8
},
{
"status": "zz",
"sum": 4
}
]
}
]
需要将对象添加到类似数组而不添加重复项(python)
将 status_static 添加到 status_data
for index, i in enumerate(status_data):
for m in status_static:
status_data[index]['like'].append(m)
我删除了重复项,但填充的项被覆盖(其中总和不等于 0)
for index, m in enumerate(status_data):
status_data[index]['like'] = list({v['status']: v for v in m['like']}.values())
结果不正确
result = [
{
"id": "id_1",
"like": [
{
"status": "xx",
"sum": 0
},
{
"status": "zz",
"sum": 0
},
{
"status": "yy",
"sum": 0
}
],
},
{
"id": "id_2",
"like": [
{
"status": "xx",
"sum": 0
},
{
"status": "yy",
"sum": 0
},
{
"status": "zz",
"sum": 0
}
]
}
]
您可以循环遍历这两个变量,检查键:
状态数据: