Pesquise em uma lista de dicionários em Python

Muitas vezes preciso armazenar dicionários em uma lista, mas sempre me sinto desconfortável ao lidar com eles, já que pode ser complicado procurar um subconjunto deles que corresponda a uma condição.

Se você enfrentar problemas semelhantes e não quiser depender de um banco de dados, experimente dictregister .

Alguns exemplos

Filtrando:

import dictregister
dr
= dictregister.DictRegister([{'x':1, 'y':2}, {'x':3, 'y':4}, {'x':1, 'y':6}])
filtdr
= dr.dfilter(x=1)
filtdr
== [{'x':1, 'y':2}, {'x':1, 'y':6}]

Removendo:

import dictregister
dr
= dictregister.DictRegister([{'x':1, 'y':2}, {'x':3, 'y':4}, {'x':1, 'y':6}])
filtdr
= dr.dremove(x=1)
dr
== [{'x':3, 'y':4}]
filtdr
== [{'x':1, 'y':2}, {'x':1, 'y':6}]

Realizando partidas complexas

import dictregister
dr
= dictregister.DictRegister([{'x':1, 'y':2}, {'x':3, 'y':4}, {'x':1, 'y':6, 'z':8}])
filtdr
= dr.dfilter(z__iskey=True)
filtdr
== [{'x':1, 'y':6, 'z':8}]
filtdr
= dr.dfilter(z__iskey=False)
filtdr
== [{'x':1, 'y':2}, {'x':3, 'y':4}]