0
我有一個相當大的JSON輸出,我想重新分類。Python 3高效的動態字典分組
我有一系列的循環來做我想做的事。
我想知道,如果有更有效的方法來做我在做什麼?
下面是我在做什麼...
抓住JSON BLOB創建組
nodes = self.getNodes()
data = json.loads(nodes)
臨時列表...
group_list = list()
構建字典...
# I avoid the shorthand form for legibility
group_dict = dict()
group_dict['all'] = dict()
group_dict['all']['hosts'] = list()
group_dict['all']['vars'] = list()
Lo OP 1:追加組的列表...
for l in data:
if '-' not in l['hostname']:
g = re.split('[0-9]+',l['hostname'],flags=re.IGNORECASE)[0]
group_list.append(g)
獲取獨特的價值觀......
group_list = sorted(set(group_list))
迴路2:填充group_dict
與團體字典...
for group in group_list:
group_dict[group] = dict()
group_dict[group]['hosts'] = list()
group_dict[group]['vars'] = list()
循環3 :將節點名稱填充到正確的組字典中...
for n in data:
if '-' not in n['hostname']:
grp = re.split('[0-9]+',n['hostname'],flags=re.IGNORECASE)[0]
group_dict[grp]['hosts'].append(n['hostname'])
返回縮進JSON一滴......
return json.dumps(group_dict,indent=1)
閱讀'setdefault' ...很不錯 –