原始python词典列表:
[
{"keyword": "nike", "country":"usa"},
{"keyword": "nike", "country":"can"},
{"keyword": "newBalance", "country":"usa"},
{"keyword": "newBalance", "country":"can"}
]
我想整合python dict列表并获得如下输出:
[
{"keyword": "nike", "country":["usa","can"]},
{"keyword": "newBalance", "country":["usa","can"]}
]
最有效的方法是什么?
答案 0 :(得分:0)
以下是一些通用指针。我不会为你编写整个代码。如果您发布了更多您尝试过的内容以及需要帮助的特定代码,我们很乐意提供更多帮助。
看起来您只是将那些具有相同价值的"关键字"键。因此,循环该键的值并根据它组合它们。
如果您按照上面的方式拆分它们,要结合一堆词典,您首先需要创建一个新的词典,其中" country"映射到空列表。然后在考虑每个字典时,检查它的值是否为#34; country"已经在该列表中。如果不是,append
它。
答案 1 :(得分:-2)
L = [
{"keyword": "nike", "country":"usa"},
{"keyword": "nike", "country":"can"},
{"keyword": "newBalance", "country":"usa"},
{"keyword": "newBalance", "country":"can"}
]
def consolidate(L):
answer = {}
for d in L:
if d['keyword'] not in answer:
answer['keyword'] = set()
answer['keyword'].add(d['country'])
retval = []
for k,countries in answer.items():
retval.append({'keyword':d['keyword'], 'country':list(countries)})
return retval