Python 如何将URI转换为字典

Python 如何将URI转换为字典,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,将URI转换为字典 如何将URI(如“aaa/bbb/ccc”)转换为嵌套字典(如 { 'aaa': { 'bbb': { 'ccc': { } } } 一种使用递归的解决方案: s = 'aaa/bbb/ccc' def get_dict(s): s = s.split('/', maxsplit=1) if len(s) == 1: return {s[0]:{}} return {s[:1][0]:

将URI转换为字典

如何将URI(如“aaa/bbb/ccc”)转换为嵌套字典(如

{
'aaa': {
    'bbb': {
        'ccc': {
        }
    }
}

一种使用递归的解决方案:

s = 'aaa/bbb/ccc'

def get_dict(s):
    s = s.split('/', maxsplit=1)
    if len(s) == 1:
        return {s[0]:{}}
    return {s[:1][0]: get_dict(s[1:][0])}

print(get_dict(s))
印刷品:

{'aaa': {'bbb': {'ccc': {}}}}
{
    "aaa": {
        "bbb": {
            "ccc": {}
        }
    }
}
{'aaa': {'bbb': {'ccc': {}}}}
编辑(使用
json
漂亮地打印):

印刷品:

{'aaa': {'bbb': {'ccc': {}}}}
{
    "aaa": {
        "bbb": {
            "ccc": {}
        }
    }
}
{'aaa': {'bbb': {'ccc': {}}}}

不需要递归。在遍历URI路径时,可以使用节点引用指向输出dict的当前叶:

node = output = {}
for path in uri.split('/'):
    node[path] = node = {}
给定
uri='aaa/bbb/ccc'
输出将变成: