query python sqlalchemy

python - query - convertir resultado de consulta sqlalchemy en una lista de dicts



sqlalchemy select (3)

Quiero que el resultado de mi consulta se convierta en una lista de dictados como este:

result_dict = [{''category'': ''failure'', ''week'': ''1209'', ''stat'': ''tdc_ok'', ''severityDue'': ''2_critic''}, {''category'': ''failure'', ''week'': ''1210'', ''stat'': ''tdc_nok'', ''severityDue'': ''2_critic''}]

Pero en cambio lo entiendo como un dict, por lo tanto con teclas repetidas:

result_dict = {''category'': ''failure'', ''week'': ''1209'', ''stat'': ''tdc_ok'', ''severityDue'': ''2_critic'', ''category'': ''failure'', ''week'': ''1210'', ''stat'': ''tdc_nok'', ''severityDue'': ''2_critic''}

Obtengo este resultado al hacer esto:

for u in my_query.all(): result_dict = u.__dict__

¿Cómo puedo convertir el resultado de la consulta sqlAlchemy en una lista de dicts (cada fila sería un dict)?

Ayuda por favor


Tratar

result_dict = [u.__dict__ for u in my_query.all()]

¿Además de qué tipo de tu result_dict before for loop? Su comportamiento es bastante extraño.


No hay .all ()

Puedes probar:

result_dict = [u.__dict__ for u in my_query.fetchall()]


Esto funciona ahora

result_dict = [u._asdict() for u in my_query.all()]

La razón es que no es en realidad una tupla sino una KeyedTuple.

La respuesta correcta en este hilo también sería útil