Есть данный код для парсинга xml:
#!/usr/bin/env python36
import os
import xml.dom.minidom
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--host' , help='Input hostname')
parser.add_argument('-z', '--zone' , help='Input zone name')
args = parser.parse_args()
spisok =[]
for rootDir in os.listdir(r'/mnt/'+args.host+'/'+args.zone):
for root, dirs, files in os.walk(r'/mnt/'+args.host+'/'+args.zone+'/' + rootDir +'/defaultVars/Vars/Connections'):
for file in files:
if file.endswith(".substvar"):
path = os.path.join(root, file)
spisok.append(path)
for element in spisok:
doc = xml.dom.minidom.parse(element)
data ={}
for info in doc.getElementsByTagName("globalVariable"):
name = str(info.getElementsByTagName("name")[0].firstChild.data)
value = str(info.getElementsByTagName("value")[0].firstChild.data)
data[name]=value
print(element,"\n",data,"\n")
На текущий момент вывод печатается в формате:
/mnt/'+args.host+'/'+args.zone+'/' + rootDir +'/defaultVars/Vars/Connections'/EMS/Data
{'Host': '10.64.73.137:1576', 'Login': 'ows_dbts', 'LoginTimeout': '10'}
Я хочу переделать вывод в вид:
{ rootDir:
{ EMS:
{ Host: 10.64.73.137:1576
Login: ows_dbts
LoginTimeout: 10
}
}
}
Каким образом корректно реализовать форматировние результата? Как выдергивать название директории ( в примере EMS, но директории могут меняться).