1
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}]
4

1 回答 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)
于 2021-05-14T11:57:56.197 回答