Задать вопрос
@evgeh4ik

Как отформатировать результат json массива?

Есть данный код для парсинга 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, но директории могут меняться).
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы