2014-12-11 54 views
-1

嵌套的Json键我有一个字符串= “[A] [B] [C]”,值= “foo” 的如何设置一个字符串作为在Python

如何设置字符串作为嵌套的Json键?即

body={} 

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

print body 

得到如下: -

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

回答

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'}}}

虽然这不处理数组。

+0

非常感谢你这就是我想要的!我喜欢返回setPath()部分。 – Hong 2014-12-12 07:01:08

相关问题