如何在Python中将字符串设置为嵌套的Json键

时间:2014-12-11 01:11:14

标签: python json key

我有一个字符串=" [A] [B] [C]",value =" foo"

如何将字符串设置为嵌套的Json密钥?即。

body={}

body[string]=value   # of course doesn't work

print body

得到以下: -

{ "A":{
        "B":{
            "C":"foo"
        }
    }
}

1 个答案:

答案 0 :(得分:0)

可能没有这样的功能(至少在Web框架之外),但你可以自己制作:

def setPath(body, path, value):
    brace = path.find('[')
    if brace == 0:
        brace = path.index(']', 1)
        prop = path[1:brace]
        path = path[brace+1:]
    elif brace > 0:
        prop = path[:brace]
        path = path[brace:]
    else:
        path = prop

    if len(path) > 0:
        if type(body) != dict or prop not in body:
            body[prop] = dict()
        return setPath(body[prop], path, value)

    body[prop] = value

body = dict()
setPath(body, "[A][B][C]", "foo")
print body

输出:{'A': {'B': {'C': 'foo'}}}

但这不会处理数组。