json 如何使用Python从jason对象中删除属性

cl25kdpy  于 2023-07-01  发布在  Python
关注(0)|答案(1)|浏览(132)

我有一个Json对象(Dict),如下所示:

{name = 'John',
 address = '123 bb',
 age = '40'
 children:[{ name ="smith',
             address ='458 ff',
             age = '25',
             grand_children [{name ="smith',
                              address ='458 ff',
                               age = '25'},
                              {name ="smith',
                              address ='458 ff',
                               age = '25'}],
           { name ="smith',
             address ='458 ff',
             age = '25',
             grand_children [{name ="smith',
                              address ='458 ff',
                               age = '25'},
                              {name ="smith',
                              address ='458 ff',
                               age = '25'}]]}

有没有一种简单方法可以一次移走一个财产
例如,删除名称(一次删除一个)?

zhte4eai

zhte4eai1#

这是从对象中移除属性的代码(也是从其子对象中递归移除)。

def remove_property(obj, prop_name):
    if isinstance(obj, dict):
        if prop_name in obj:
            del obj[prop_name]
        for value in obj.values():
            remove_property(value, prop_name)
    elif isinstance(obj, list):
        for item in obj:
            remove_property(item, prop_name)

# Example usage
data = {
    'name': 'John',
    'address': '123 bb',
    'age': '40',
    'children': [
        {
            'name': 'smith',
            'address': '458 ff',
            'age': '25',
            'grand_children': [
                {
                    'name': 'smith',
                    'address': '458 ff',
                    'age': '25'
                },
                {
                    'name': 'smith',
                    'address': '458 ff',
                    'age': '25'
                }
            ]
        },
        {
            'name': 'smith',
            'address': '458 ff',
            'age': '25',
            'grand_children': [
                {
                    'name': 'smith',
                    'address': '458 ff',
                    'age': '25'
                },
                {
                    'name': 'smith',
                    'address': '458 ff',
                    'age': '25'
                }
            ]
        }
    ]
}

remove_property(data, 'name')

print(data)


如果你只是想删除一个属性(不是递归的),使用del关键字.

相关问题