Python 中如何应对深层字典

在 Python 中处理大量数据时,会经常遇到嵌套多层的 JSON 数据。JSON 说白了就是字典和列表彼此嵌套的产物。

但 JSON 层级很深,或者数据格式很不规范,而我们又想要获取到其中某一些特定的数据时,如果使用 Python 自带的处理字典的方法,就需要频繁的使用 get 方法,最好的情况,也是连续出现多个 []。这样的代码,阅读、理解、维护,无一不是一件麻烦事。

那么,有没有什么好的工具可以帮助我们解决此类问题呢?有。

开源库:python-box

有了这个 box,我们就有了两个工具类,Box 和 BoxList,分别处理 dict 和 list。

使用非常简单,几乎能想到的优化,都有相应的支持。

特性如下:

  1. 最基础的:let b = Box(a=2), then we can use b.a and get result of 2
  2. 统一处理默认值:let b = Box({‘a’: 2}, default_box=True), then b.b will get {}, and b.b.b will also get {}
  3. 处理列表:let b = BoxList([{‘a’: 2}, {‘a’: 3}, {‘b’: 2}], default_box=True), then we can use b[0].a, b[1].a, b[2].a

核心应用就是以上这三个。


不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。