繁体   English   中英

从嵌套字典列表中的字典中删除键值对

[英]Delete key:value pair from dict in list in nested dict

可以说我有这个字典:

dictos = {
    "a": {
        "b": {
            "c": 3,
            "d": 4,
            "e": [],
            "f": [{"g": 5}, 'test', {"h": 6, "i": 7}]
        }
    }
}

假设我想删除 "c": 3 对。 我在做什么:

import dpath.util
path = "a/b/c"
dpath.util.delete(dictos, path)

它工作得很好。 output 是:

{
  'a': {
    'b': {
      'd': 4,
      'e': [],
      'f': [{'g': 5}, 'test', {'h': 6, 'i': 7}]
    }
  }
}

问题是当我试图删除列表中的键:值对时。 比方说我想删除“h”:6。 所以在做的时候:

path = "a/b/f[2]/h"
dpath.util.delete(dictos, path)

我正进入(状态:

dpath.exceptions.PathNotFound:找不到要删除的 a/b/f[2]/h。

所以问题基本上是如何从列表中的嵌套字典中删除项目?

似乎图书馆希望所有段都使用相同的分隔符,即使用a/b/f/2/h

path = "a/b/f/2/h"
dpath.util.delete(dictos, path)
print(dictos)

结果:

{'a': {'b': {'d': 4, 'e': [], 'f': [{'g': 5}, 'test', {'i': 7}]}}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM