Convertir un diccionario en XML en Python

XML significa Lenguaje de marcado extensible . XML fue diseñado para ser autodescriptivo y para almacenar y transportar datos. Las etiquetas XML se utilizan para identificar, almacenar y organizar los datos. El componente básico de un documento XML se define mediante etiquetas. Un elemento tiene una etiqueta de inicio y una etiqueta de finalización. Todos los elementos en un XML están contenidos en un elemento más externo llamado elemento raíz.

Ejemplo: 

<geeksforgeeks>
<course>DSA</course>
<price>2499/-</price>
</geeksforgeeks>

En el ejemplo anterior, geeksforgeeks es el elemento raíz y <curso>, <precio>, <precio> son los elementos.

Ahora, veamos cómo convertir un diccionario en XML:
para convertir un diccionario en XML en Python, usaremos la biblioteca xml.etree.ElementTree . La biblioteca xml.etree.ElementTree generalmente se usa para analizar y también se utiliza para crear documentos XML. La clase ElementTree se emplea para envolver una estructura de componente y convertirla desde y hacia XML. El resultado de esta conversión es un Elemento . Para E/S, es fácil convertir esto en una string de bytes usando la función tostring() en xml.etree.ElementTree.

xml.etree.ElementTree.Element() Clase:

Esta clase Element define la interfaz Element y proporciona una implementación de referencia de esta interfaz. 

Sintaxis: elemento (etiqueta, atributo = {}, ** extra) 

Parámetro: 

  • etiqueta: Esta es una string que identifica qué tipo de datos representa este elemento.
  • attrib: este es un diccionario opcional que contiene atributos de elementos.
  • **extra: contiene atributos adicionales, proporcionados como argumentos de palabras clave.

Retorno: Objeto de elemento
 

xml.etree.ElementTree.tostring() Función:

Esta función genera una representación de string de un elemento XML. 

Sintaxis: tostring(elemento)

Parámetro: elemento XML

Retorno: representación de string de un elemento XML

Método ElementObject.set() :

Este método Establece la clave de atributo en el elemento al valor. 

Sintaxis: set(clave, valor) 

Parámetro: 

  • clave: representa el atributo.
  • valor: representa el valor del atributo.

Retorno: Ninguno
 

Ahora, veamos el programa Python para convertir un diccionario en XML:

Python3

# import Element class, tostring function
# from xml.etree.ElementTree library
from xml.etree.ElementTree import Element,tostring
 
# define a function to
# convert a simple dictionary
# of key/value pairs into XML
def dict_to_xml(tag, d):
 
    elem = Element(tag)
    for key, val in d.items():
        # create an Element
        # class object
        child = Element(key)
        child.text = str(val)
        elem.append(child)
         
    return elem
 
# Driver Program
s = { 'name': 'geeksforgeeks',
     'city': 'noida', 'stock': 920 }
 
# e stores the element instance
e = dict_to_xml('company', s)
 
# Element instance is different
# every time you run the code
print(e)
 
# converting into a byte string
print(tostring(e))
 
# We can attach attributes
# to an element using
# set() method
e.set('_id','1000')
 
print(tostring(e))

Producción: 

<Elemento ‘compañía’ en 0x7f411a9bd048> 
b'<compañía><nombre>geeksforgeeks</nombre><ciudad>noida</ciudad><stock>920</stock></compañía>’ 
b'<compañía _id=”1000 ″><name>geeksforgeeks</name><city>noida</city><stock>920</stock></company>’ 
 

Publicación traducida automáticamente

Artículo escrito por ashishguru9803 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *