我有一个像[{"username":"example"},{"password":"example2"},{"username":"example3"},{"password":"example4"}]
所以我想合并具有不同键的对象。
看起来应该像[{"username":"example","password":"example2"},{"username":"example3","password":"example4"}]
实际上,我永远不会知道按键。该数组动态创建。 因此,代码应随时可用。例如:当有四个不同的键或三个或六个时。
我该如何应对这一挑战?
感谢和问候。
答案 0 :(得分:2)
不确定这将总是输出正确的输出(您没有提供很多用例),但是我确定这将使您走上正确的轨道:
li = [{"username":"example"},{"password":"example2"},
{"username":"example3"},{"password":"example4"}]
dict_list = []
for d in li:
if not dict_list:
dict_list.append(d)
else:
for d_ in dict_list:
if list(d.keys())[0] not in d_:
d_.update(d)
else:
dict_list.append(d)
break
dict_list
是
[{'username': 'example', 'password': 'example2'},
{'username': 'example3'}, {'password': 'example4'}]
即使订单不完善,也可以使用
li = [{"username":"example"}, {"username":"example3"},
{"password":"example2"}, {"password":"example4"}]
将提供相同的输出