@pcdesign

Как ускорить эту выборку?

Структура
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}


Но при больших объемах тормозит.
Есть ли какие-нибудь быстрые варианты?
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы