我正在解析存储各种代码片段的JSON,我首先构建这些代码片段使用的语言词典:
snippets = {'python': {}, 'text': {}, 'php': {}, 'js': {}}
然后,当循环使用JSON时,我希望将有关代码片段的信息添加到上面列出的字典中。例如,如果我有一个JS片段,那么最终结果将是:
snippets = {'js':
{"title":"Script 1","code":"code here", "id":"123456"}
{"title":"Script 2","code":"code here", "id":"123457"}
}
不是为了搅乱局面,但在PHP中处理多维数组时,我只会做以下操作(我正在寻找类似的东西):
snippets['js'][] = array here
我知道我看到一两个人在谈论如何创建多维词典,但似乎无法在python中找到向词典添加词典的方法。谢谢你的帮助。
这被称为自动激活:
你可以用defaultdict
def tree():
return collections.defaultdict(tree)
d = tree()
d['js']['title'] = 'Script1'
如果想法是有列表,你可以做:
d = collections.defaultdict(list)
d['js'].append({'foo': 'bar'})
d['js'].append({'other': 'thing'})
defaultdict的想法是在访问键时自动创建元素。顺便说一句,对于这个简单的情况,你可以简单地做:
d = {}
d['js'] = [{'foo': 'bar'}, {'other': 'thing'}]
来自
snippets = {'js':
{"title":"Script 1","code":"code here", "id":"123456"}
{"title":"Script 2","code":"code here", "id":"123457"}
}
在我看来,你好像想要一份字典清单。以下是一些python代码,有望产生您想要的
snippets = {'python': [], 'text': [], 'php': [], 'js': []}
snippets['js'].append({"title":"Script 1","code":"code here", "id":"123456"})
snippets['js'].append({"title":"Script 1","code":"code here", "id":"123457"})
print(snippets['js']) #[{'code': 'code here', 'id': '123456', 'title': 'Script 1'}, {'code': 'code here', 'id': '123457', 'title': 'Script 1'}]
这说明了吗?