Python-glom详解

本文详细介绍了Python库glom的使用,包括通过路径访问嵌套数据、声明性数据转换、错误处理以及glom的核心函数,如glom.glom、glom.Path、glom.Literal、glom.Coalesce等。glom提供了强大的工具来处理和操作复杂的数据结构,具有易读的错误信息和调试功能。
摘要由CSDN通过智能技术生成

glom是一种用Python处理数据的新方法,具有以下特点:

  • 嵌套结构并基于路径访问
  • 使用轻量级的Pythonic规范进行声明性数据转换
  • 可读、有意义的错误信息
  • 内置数据探测和调试功能

在上一篇博文当中,简要记录一下glom的使用,以及一些它的特性!接下来,将记录一下glom更多方法的使用:

glom.glom(target, spec, **kwargs)

从给定的target,根据spec声明规范构造一个值

反问嵌套数据,我们可以这样:

from glom import glom

target = {"a": {"b": "c"}}
print(glom(target, "a.b"))      # c

这里的规范一个表示路径的字符串。下面我们来构建或重构更加复杂的嵌套数据:

from glom import glom

target = {"a": 1, "b": {"c": 1, "d": 2}, "c": [0, 1, 2]}
spec = {"a": "a", "b": "b.c", "c": ("c", [lambda x: x * 2])}
print(glom(target, spec))

######## 打印结果如下 ########
{'a': 1, 'b': 1, 'c': [0, 2, 4]}

glom还支持一个default参数用于设置默认值。如果设置了此值,那么glom操作失败之后将会自动返回默认值,类似dict.get(),如下:

spec = "a.xx"
print(glom(target, spec, default=1234))     # 1234

在target数据中可以看到,并没有哪个路径为“a.xx”,所以glom返回默认值为1234。

另外,我们还可以指定skip_exc参数来控制哪些错误应该被忽略,如下:

print(glom({}, lambda x: 100 / len(x), default=0, skip_exc=ZeroDivisionError))          # 0

glom支持的参数说明如下:

  • target:glom将在其上运行的对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值