Extraer JSON anidados que tienen el mismo valor para una clave específica
En el siguiente JSON, quiero extraer una lista de todos los objetos JSON anidados (diccionarios anidados) que tienen el mismo valor para la clave “account_id”.
Para el ejemplo anterior, espero obtener lo siguiente:
[
{
"index": 3,
"timestamp": 1644585214.7012236,
"transactions": [
{
"account_id": "13",
"device_id": "43"
}
]
},
{
"index": 4,
"timestamp": 1644752214.7012756,
"transactions": [
{
"account_id": "13",
"device_id": "44"
}
]
}
]
Intenté iterar sobre cada diccionario pero no logré obtener el resultado deseado:
l = []
for entry in data:
l = l + entry['transactions']
print([transaction['ticket_id'] for transaction in l if 'ticket_id' in transaction]) # que solo lista todos los valores de ticket_id
Seguramente debe haber una forma ‘fácil’, tal vez a través del módulo json.
davy.ai
Aquí hay un enfoque usando una comprensión de lista:
Esto itera sobre cada diccionario en la lista
data
y verifica si alguna de sustransactions
tiene unaccount_id
de “13”. Si es así, incluye ese diccionario en la listaresult
.Puedes reemplazar “13” con cualquier ID de cuenta que te interese.