python封装获取字典值函数,支持多维字典

前些时间写了个php获取数组的。

刚好现在python的项目也需要同样的功能,就也写了一个,算法都一样,就不多说别的了,直接上代码。

# coding=UTF-8
def getval(dictdata, key, default=None):
    if not isinstance(dictdata, dict):
        return default
    keys = key if isinstance(key, list) else key.split('.')
    if len(keys) == 1:
        if keys[0] in dictdata:
            return dictdata[keys[0]]
        else:
            return default
    else:
        dictdata = dictdata[keys[0]]
        keys.remove(keys[0])
        return getval(dictdata, keys, default)

调用方法跟php版的一样

data = {
    'site': {
        'name': '虚拟笔记',
        'domain': 'www.notevm.com',
        'page': {
            'tags': {
                'python': 'https://www.notevm.com/a/special/python'
            }
        }
    }
}

name = getval(data, 'site.name')
print('获取二维字典:%s' % name)

python = getval(data, 'site.page.tags.python')
print('获取四维字典:%s' % python)

url = getval(data, 'site.url', 'https://www.notevm.com/')
print('元素不存在返回默认值:%s' % url)
python获取字典的值

原创文章,作者:小哆啦,如若转载,请注明出处:https://www.notevm.com/a/6083.html

(0)
上一篇 2022年6月7日 10:30
下一篇 2022年6月8日 14:22

相关推荐