Структураmy_struct =
{
"groups":[
{
"zones":[
{
"items":[
{
"id":"5664",
"qty":1
},
{
"id":"4556",
"qty":3
},
{
"id":"4638",
"qty":1
}
]
}
]
},
{
"zones":[
{
"items":[
{
"id":"3980",
"qty":5
}
]
},
{
"items":[
{
"id":"3982",
"qty":5
}
]
}
]
}
]
}
Я использовал
https://github.com/akesterson/dpath-python
Вот код, он работает как надо, отдает словарь вида _id : qty
>>> import dpath.util
>>> path = 'groups/*/zones/*/items/*'
>>> obj = dpath.util.search(my_struct, path, yielded=True)
>>> res = {v.get('id'): v.get('qty') for (_, v) in obj}
>>> res
{'5664': 1, '4556': 3, '4638': 1, '3980': 5, '3982': 5}
Но при больших объемах тормозит.
Есть ли какие-нибудь быстрые варианты?