Python lista de elementos de filtro 3 dict ordenados por un valor clave específica

Zorpho:

Estoy repite una lista de otras variables de la lista en forma ordenada variable de diccionario y añadiéndolos a una lista nueva. Estoy tratando de filtrar las nuevas entradas de diccionario ordenado que sólo reciban los resultados en los que la variable 8 en la lista es igual a "C". El código que tengo debajo de mí está dando un valor de error, aunque.

    keys = ['key1', 'key2', 'key3', 'key4', 'key5', 'key6', 'key7', 'key8']
    blank_list = []
    for a in list(zip(var1, var2, var3, var4, var5, var6, var7, var8):
        orglist = OrderedDict(zip(keys, a))
        orglist2 = {a: b for a, b in orglist if b[8] == 'C'}
        blank_list.append(orglist2)

¿Cómo puedo solucionar este problema sólo para recuperar valores ordereddict donde var8 es igual a un valor específico ( 'C')? El resultado debe ser una lista de objetos ordenados dict donde el var8 es igual a 'C' independientemente de lo que las otras variables son iguales. Otros valores posibles para var8 podrían estar en blanco o ninguno.

Faboor:

Si desea mantener su enfoque, esto debe solucionarlo:

keys = ['key1', 'key2', 'key3', 'key4', 'key5', 'key6', 'key7', 'key8']
blank_list = []
for a in zip(var1, var2, var3, var4, var5, var6, var7, var8):
    orglist = OrderedDict(zip(keys, a))
    orglist2 = {a: b for a, b in orglist.items() if b[6] == 'C'}
    blank_list.append(orglist2)

Su problema era, que for a, b in orglistno funcionaría, porque iteración a través de un diccionario sólo le da las claves del diccionario.

pero tal vez esto sería poco más legible:

for a in zip(var1, var2, var3, var4, var5, var6, var7, var8):
    if a[6] == 'C':
        blank_list.append(dict(zip(keys, a)))

o

for a in zip(var1, var2, var3, var4, var5, var6, var7, var8):
    orglist = OrderedDict(zip(keys, a))
    if orglist["key7"] == 'C':
        blank_list.append(orglist2)

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=398952&siteId=1
Recomendado
Clasificación