Рубрики
Без рубрики

Модуль XMLTODICT в Python: практическая ссылка

В этом руководстве мы увидим, как установить модуль XMLTODICT и использовать его в наших программах Python, чтобы легко работать с файлами XML. Мы увидим, как преобразовать

Автор оригинала: Pankaj Kumar.

Модуль XMLTODICT в Python: практическая ссылка

В этом руководстве мы увидим, как установить модуль XMLTODICT и использовать его в наших программах Python, чтобы легко работать с файлами XML. Мы увидим, как преобразовать XML в словари Python и к формату JSON и VICE-VERSIA.

Установите модуль XMLTODICT, используя PIP

Для Python 3 или выше мы можем использовать команду PIP3 для установки XMLTODICT с помощью терминала.

pip3  install xmltodict

Для более старых версий Python мы можем использовать следующую команду для установки XMLTODICT.

pip install xmltodict

Какой файл XML?

XML обозначает расширяемую раскладку, и он был разработан в основном для хранения и транспортировки данных.

Это описательный язык, который поддерживает запись структурированных данных, и мы должны использовать другое программное обеспечение для хранения, отправки, приема или отображения данных XML.

Следующий файл XML имеет данные для самолета, такого как год, сделать, модель и цвет.





    1977 
    Cessna 
    Skyhawk 
    Light blue and white 

Теперь в следующих разделах мы будем играть с этими данными самолета и посмотреть, как преобразовать его в словарь Python и JSON и преобразовывать их обратно в формат XML с помощью модуля XMLTODICT.

Как прочитать данные XML в словарь Python?

Мы можем конвертировать файлы XML в словарь Python, используя xmltodict.parse () Метод в модуле XMLTODICT.

xmltodict.parse () Метод принимает файл XML в качестве ввода и изменения его для заказанного словаря.

Затем мы можем извлечь данные словаря из упорядоченного словаря, используя Dict Constructor для словарей Python.

#import module
import xmltodict

#open the file
fileptr = open("/home/aditya1117/askpython/plane.xml","r")

#read xml content from the file
xml_content= fileptr.read()
print("XML content is:")
print(xml_content)

#change xml format to ordered dict
my_ordered_dict=xmltodict.parse(xml_content)
print("Ordered Dictionary is:")
print(my_ordered_dict)
print("Year of plane is:")
print(my_ordered_dict['plane']['year'])

#Use contents of ordered dict to make python dictionary
my_plane= dict(my_ordered_dict['plane'])
print("Created dictionary data is:")
print(my_plane)
print("Year of plane is")
print(my_plane['year'])

Выход:

XML content is:




    1977 
    Cessna 
    Skyhawk 
    Light blue and white 


Ordered Dictionary is:
OrderedDict([('plane', OrderedDict([('year', '1977'), ('make', 'Cessna'), ('model', 'Skyhawk'), ('color', 'Light blue and white')]))])
Year of plane is:
1977
Created dictionary data is:
{'year': '1977', 'make': 'Cessna', 'model': 'Skyhawk', 'color': 'Light blue and white'}
Year of plane is
1977

В приведенном выше примере мы успешно извлекли наши данные самолета из формата XML, используя xmltodict.parse () Способ и напечатали данные как в форме упорядоченного словаря и словаря.

Как конвертировать словарь Python в XML?

Мы можем преобразовать словарь Python в формат XML, используя xmltodict.unparse () Способ модуля XMLTODICT.

Этот метод принимает объект словаря в качестве ввода, как возвращает данные формата XML в качестве вывода.

Единственное ограничение вот что Словарь должен иметь один корню Так что данные XML можно легко отформатировать. В противном случае это будет причинить ValueError Отказ

#import module
import xmltodict

#define dictionary with all the attributes
mydict={'plane':{'year': '1977', 'make': 'Cessna', 'model': 'Skyhawk', 'color':'Light blue and white'}}
print("Original Dictionary of plane data is:")
print(mydict)

#create xml format
xml_format= xmltodict.unparse(my_ordered_dict,pretty=True)
print("XML format data is:")
print(xml_format)

Выход:

Original Dictionary of plane data is:
{'plane': {'year': '1977', 'make': 'Cessna', 'model': 'Skyhawk', 'color': 'Light blue and white'}}
XML format data is:


        1977
        Cessna
        Skyhawk
        Light blue and white

В приведенном выше примере мы создали данные самолета в формате XML из простых данных словаря Python. Теперь мы увидим, как преобразовать данные XML в формат JSON.

Как конвертировать XML в JSON?

Мы можем преобразовать данные XML в формат JSON, используя xmltodict модуль и JSON Модуль в Python Отказ В этом процессе мы сначала создаем заказный словарь из формата XML, используя xmltodict.parse () метод.

Затем мы преобразуем заказный словарь в формат JSON, используя json.dumps () Метод, который принимает упорядоченный словарь в качестве аргумента и преобразует его в json String.

#import module
import xmltodict
import json

#open the file
fileptr = open("/home/aditya1117/askpython/plane.xml","r")

#read xml content from the file
xml_content= fileptr.read()
print("XML content is:")
print(xml_content)

#change xml format to ordered dict
my_ordered_dict=xmltodict.parse(xml_content)
print("Ordered Dictionary is:")
print(my_ordered_dict)
json_data= json.dumps(my_ordered_dict)
print("JSON data is:")
print(json_data)
x= open("plane.json","w")
x.write(json_data)
x.close()

Выход:

XML content is:




    1977 
    Cessna 
    Skyhawk 
    Light blue and white 


Ordered Dictionary is:
OrderedDict([('plane', OrderedDict([('year', '1977'), ('make', 'Cessna'), ('model', 'Skyhawk'), ('color', 'Light blue and white')]))])
JSON data is:
{"plane": {"year": "1977", "make": "Cessna", "model": "Skyhawk", "color": "Light blue and white"}}

В приведенном выше примере мы прочитали данные XML в xml_content а потом xmltodict.parse () создает заказный словарь my_ordered_dict И тогда данные JSON созданы с помощью json.dumps () Метод из упорядоченного словаря.

Как конвертировать данные JSON в XML?

Теперь давайте конвертируем данные JSON в формат XML с помощью модуля XMLTODICT, сначала преобразовав данные JSON в словарь Python, используя json.load () Способ, а затем преобразование словаря на XML с помощью xmltodict.unparse () Отказ

Опять же, здесь ограничение это то, что Данные JSON должны иметь один корню В противном случае это будет причинить ValueError Отказ

#import module
import xmltodict
import json

#define dictionary with all the attributes
fileptr = open("/home/aditya1117/askpython/plane.json","r")
json_data=json.load(fileptr)
print("JSON data is:")
print(json_data)

#create xml format
xml_format= xmltodict.unparse(json_data,pretty=True)
print("XML format data is:")
print(xml_format)

Выход:

JSON data is:
{'plane': {'year': '1977', 'make': 'Cessna', 'model': 'Skyhawk', 'color': 'Light blue and white'}}
XML format data is:


        1977
        Cessna
        Skyhawk
        Light blue and white

В приведенном выше примере json.load () Принимает объект файла в качестве аргумента и анализа данных, которые создают тем самым словарь Python, который хранится в json_data Отказ Затем мы преобразуем словарь в файл XML, используя xmltodict.unparse () метод.

Заключение

В этой статье мы использовали модуль XMLTODICT для обработки данных XML. Мы видели, как преобразовать данные XML в формат Python Python и формат JSON, а также обратно в формат XML. Счастливое обучение!