seen = set()
dnf = list(itertools.product(*filters))
for item in data:
    keys = set(tuple((field, item.get(field, None)) for field in conjunct) for
        conjunct in dnf)
if keys.isdisjoint(seen):
    seen |= keys
print(item)
Comparing dictionaries based on a combination of keys