跨多个字典对键进行排序

时间:2020-04-01 16:24:03

标签: python-3.x dictionary

我有一个包含多个小词典的列表,如下所示:

_history = [{ "field" : "field01", "mode" : "write"},
            { "field" : "field02", "mode" : "write"},
            { "field" : "field03", "mode" : "write"},
            { "field" : "field01", "mode" : "clear"}]

我感兴趣的是处理词典列表并确定同一字段值是否显示多次(在这种情况下为“ field01”)的最佳方法,如果是,我想验证一下模式是否相同。在上面的示例中,我在field01上发生冲突,我想提出一个例外情况

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

from itertools import groupby
from operator import itemgetter

def validate(hist)
    key = itemgetter('field')
    for k, g in groupby(sorted(hist, key=key), key=key):
        s = set(d['mode'] for d in g)
        if len(s) > 1:
            raise ValueError(k)

>>> validate(_history)
Traceback ...
ValueError: field01