Glom назначается с помощью проверочного фильтра
Я пытаюсь использовать
glom.assign
для выполнения глубокого присваивания только одному из дочерних элементов в списке. В качестве сложности, правильный дочерний элемент для установки зависит от свойства этого ребенка. Могу ли я использовать и
Check
присвоить некоторые детские значения, основываясь на свойствах содержащихся элементов?
В качестве простого примера, попытка получить значение с плавающей запятой из списка работает. Но используя ту же спецификацию с
assign
сбой (трассировка стека скрыта для ясности):
>>> from glom import glom, Check, SKIP, assign
>>> test = {"root": [{"name": "child1", "type": "bool", "value": True},
{"name": "child2", "type": "int", "value": 1,},
{"name": "child3", "type": "float", "value": 1.0}]}
>>> spec = ("root", [Check("type", equal_to="float", default=SKIP)], "0", "value")
>>> glom(test, spec)
1.0
>>> assign(test, spec, 2.0)
...
TypeError: path argument must be a .-delimited string, Path, T, or S
Как мне выполнить фильтрацию на основе свойств при использовании glom assign?
(У меня установлен glom-20.11.0.)