Python 之glom的多种数据套嵌处理
Posted 居安思危
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 之glom的多种数据套嵌处理相关的知识,希望对你有一定的参考价值。
glom的数据处理
glom广泛地介绍了日常数据和对象操作,帮助您开始着眼于编写健壮的声明性数据转换每个应用程序都处理数据,而现在,即使是最简单的应用程序也会处理丰富的,大量嵌套的数据
1.字典套字典
#目的获取字典c的数据
jvmdata={‘a‘: {‘b‘: {‘c‘: ‘d‘}}}
print("打印结果是",glom(jvmdata,‘a.b.c‘))
打印结果是:d
target = {‘galaxy‘: {‘system‘: {‘planet‘: ‘jupiter‘}}}
spec = ‘galaxy.system.planet‘
print(glom(target, spec))
打印结果:jupiter
2. 字典套列表获取数据
target = {‘system‘: {‘planets‘: [{‘name‘: ‘earth‘}, {‘name‘: ‘jupiter‘}]}} spec =‘system.planets‘ print(glom(target,(spec,[‘name‘])))
[‘earth‘, ‘jupiter‘]
3.类似数据重组
字典套列表套字典
需求:获取names和moons的数据后重新组成字典对应列表的格式
换个角度思考 target是orm获取的数据需要重新组成新的数据
target = {‘system‘: {‘planets‘: [{‘name‘: ‘earth‘, ‘moons‘: 1}, {‘name‘: ‘jupiter‘, ‘moons‘: 69}]}} spec={"names":(‘system.planets‘, [‘name‘]), "moons":(‘system.planets‘, [‘moons‘])} print(glom(target,spec)) {‘moons‘: [1, 69], ‘names‘: [‘earth‘, ‘jupiter‘]}
4.glom的可以使用一些方法和函数 sum 求和
target = {‘system‘: {‘planets‘: [{‘name‘: ‘earth‘, ‘moons‘: 1}, {‘name‘: ‘jupiter‘, ‘moons‘: 69}]}} print glom(target, {‘moon_count‘: (‘system.planets‘, [‘moons‘], sum)})
# {‘moon_count‘: 70}
写的不好,还望会的同学不吝赐教啊
以上是关于Python 之glom的多种数据套嵌处理的主要内容,如果未能解决你的问题,请参考以下文章