Python - 如何删除嵌套键

Python - how to remove nested key

提问人:Vincent Lam 提问时间:6/17/2021 最后编辑:Vincent Lam 更新时间:6/17/2021 访问量:22

问:

a={
"car": "Nissan",
"from": [
    {
        "Japan1": "People1",
        "make_type": "allow",
        "driver": {
            "id": "12345",
            "name": "user1",
            "type": "user"
        }
    },
    {
        "Japan1": "People1",
        "make_type": "allow",
        "driver": {
            "id": "98765",
            "name": "user2",
            "type": "user"
        }
    }
]}

目标:想要删除“driver”中的“name”和“type”

我尝试了很多方法,如果使用打印名称或类型,只需逐级放入新的var级别即可。

但是我怎样才能删除它呢?

谢谢

python-2.7 字典 嵌套列表

评论


答:

0赞 Andrej Kesely 6/17/2021 #1

您可以使用:del

for f in a["from"]:
    del f["driver"]["name"]
    del f["driver"]["type"]

print(a)

指纹:

{
    "car": "Nissan",
    "from": [
        {"Japan1": "Peop1", "make_type": "plastic", "driver": {"id": "12345"}}
    ],
}

或:

for f in a["from"]:
    f["driver"] = {
        k: v for k, v in f["driver"].items() if k not in {"name", "type"}
    }

评论

0赞 Vincent Lam 6/17/2021
哦对不起,实际上驱动程序可以有多个驱动程序,让我编辑问题
0赞 Andrej Kesely 6/17/2021
@VincentLam 答案中的代码适用于字典中的多个驱动程序。