Используйте glom для получения индекса при просмотре списка словарей
from glom import glom, T
from glom.core import Val
target = [
{"firstname": 'boka', 'lastname':'raton'},
{"firstname": 'cape', 'lastname':'town'}
]
spec = ([{
'fname':'firstname',
'index': Val('0')
}])
r = glom(target, spec)
print(r)
Можно ли получить индекс при итерации по списку словарей с помощью glom?
Текущий выход:
[{'fname': 'boka', 'index': '0'}, {'fname': 'cape', 'index': '0'}].
Но хотелось бы иметь следующее:
[{'fname': 'boka', 'index': 0}, {'fname': 'cape', 'index': 1}]
1 ответ
Решил это, перечисляя элементы и выполняя glom по одному словарю за раз.
Использовал
Val
для оценки обернутого значения
index
from glom import glom
from glom.core import Val
result = []
for index, value in enumerate(target):
spec = {
'fname': 'firstname',
'index': Val(index)
}
r = glom(value, spec)
result.append(r)
print(result)