簡體   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