python 小技巧,给设计好的dict 增加嵌套值
beijing={} beijing={'shanghai':'123'} 现在要给beijing的增加一个shanghai1 的嵌套值 beijing['shanghai1']['name']=1 运行:
那么在python3.5 后给我提供了一个collections模块可以解决。
defaultdict
允许我们用一个聪明的方式绕过这个问题。 首先我分享一个使用dict
触发KeyError
的例子,然后提供一个使用defaultdict
的解决方案。
1
2
3
4
5
6
7
|
import collections,json tree = lambda :collections.defaultdict(tree) some_dict = tree() some_dict[ 'shanghai' ] = '122' print (json.dumps(some_dict)) some_dict[ 'shanghai1' ][ 'name' ] = 'yello' print (json.dumps(some_dict)) |
{"shanghai1": {"name": "yello"}}