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}

 

写的不好,还望会的同学不吝赐教啊

转载于:https://www.cnblogs.com/yingfei/p/9924636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值