如果这是重复的问题,我很抱歉。我已经寻找过了,但是没有找到任何与此类似的内容。
我需要转换一个字典:
{'id': ['001', '002', '003'], 'tag1': ['val1']}
转换为字典列表:
[{'id': '001', 'tag1': 'val1'}, {'id': '002', 'tag1': 'val1'}, {'id': '003', 'tag1': 'val1'}]
请注意,此字典为示例,我无法确定字典中键的数量或名称。
我已使用以下代码解决了我的问题:
pfilter = dict()
pfilter["id"] = ["001", "002", "003"]
pfilter["tag1"] = ["val1"]
print(pfilter)
all_values = list(itertools.product(*pfilter.values()))
all_keys = [pfilter.keys()]*len(all_values)
all_dict = [zip(keys, values) for keys, values in zip(all_keys, all_values)]
all_dict = [{k:v for k, v in item} for item in all_dict]
print(all_dict)
我可能有超过2个键,但事先不知道它们的名称。
我正在寻找一种更优雅的解决方法。