Introducción
Contenido
En este tutorial, aprenderemos a usar el YAML biblioteca en Python 3. YAML son las siglas de Yet Another Markup Language.
En los últimos años se ha vuelto muy popular por su uso en el almacenamiento de datos de forma serializada para archivos de configuración. Dado que YAML es esencialmente un formato de datos, la biblioteca YAML es bastante breve, ya que la única funcionalidad que se requiere es la capacidad de analizar archivos con formato YAML.
En este artículo, comenzaremos viendo cómo se almacenan los datos en un archivo YAML, y luego cargaremos esos datos en un objeto Python. Por último, aprenderemos cómo almacenar un objeto Python en un archivo YAML. Vamos a empezar.
Antes de seguir adelante, existen algunos requisitos previos para este tutorial. Debe tener un conocimiento básico de la sintaxis de Python y / o haber tenido al menos experiencia de programación de nivel principiante con algún otro lenguaje. Aparte de eso, el tutorial es bastante simple y fácil de seguir para principiantes.
Te puede interesar:Análisis de datos de la API con MongoDB, Seaborn y MatplotlibInstalación
El proceso de instalación de YAML es bastante sencillo. Hay dos maneras de hacerlo; comenzaremos con el fácil primero:
Método 1: vía Pip
La forma más sencilla de instalar la biblioteca YAML en Python es a través de la pepita gerente de empaquetación. Si tiene pip instalado en su sistema, ejecute el siguiente comando para descargar e instalar YAML:
$ pip install pyyaml
Método 2: vía fuente
En caso de que no tenga instalado pip o tenga algún problema con el método anterior, puede ir a la biblioteca página fuente. Descargue el repositorio como un archivo zip, abra la terminal o el símbolo del sistema y navegue hasta el directorio donde se descargó el archivo. Una vez que esté allí, ejecute el siguiente comando:
$ python setup.py install
Ejemplos de código YAML
En esta sección, aprenderemos cómo manejar (manipular) archivos YAML, comenzando con cómo leerlos, es decir, cómo cargarlos en nuestro script Python para que podamos usarlos según nuestras necesidades. Entonces, comencemos.
Te puede interesar:Revisión del curso: Domine la entrevista de PythonLeyendo archivos YAML en Python
En esta sección, veremos cómo leer archivos YAML en Python.
Comencemos creando dos archivos con formato YAML.
El contenido del primer archivo es el siguiente:
# fruits.yaml file
apples: 20
mangoes: 2
bananas: 3
grapes: 100
pineapples: 1
El contenido del segundo archivo es el siguiente:
Te puede interesar:Resolver problemas de secuencia con LSTM en Keras: Parte 2# categories.yaml file
sports:
- soccer
- football
- basketball
- cricket
- hockey
- table tennis
countries:
- Pakistan
- USA
- India
- China
- Germany
- France
- Spain
Puedes ver que el fruits.yaml
y categories.yaml
los archivos contienen diferentes tipos de datos. El primero contiene información solo sobre una entidad, es decir, frutas, mientras que el segundo contiene información sobre deportes y países.
Intentemos ahora leer los datos de los dos archivos que creamos usando un script de Python. los load()
método del yaml
El módulo se puede utilizar para leer archivos YAML. Mira el siguiente guión:
# process_yaml.py file
import yaml
with open(r'E:datafruits.yaml') as file:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python the dictionary format
fruits_list = yaml.load(file, Loader=yaml.FullLoader)
print(fruits_list)
Salida:
{ 'apples': 20, 'mangoes': 2, 'bananas': 3, 'grapes': 100, 'pineapples': 1 }
En el script de arriba especificamos yaml.FullLoader
como el valor de la Loader
parámetro que carga el lenguaje YAML completo, evitando la ejecución de código arbitrario. En lugar de utilizar el load
función y luego pasar yaml.FullLoader
como el valor de la Loader
parámetro, también puede utilizar el full_load()
función, como veremos en el siguiente ejemplo.
Intentemos ahora leer el segundo archivo YAML de manera similar usando un script de Python:
# read_categories.py file
import yaml
with open(r'E:datacategories.yaml') as file:
documents = yaml.full_load(file)
for item, doc in documents.items():
print(item, ":", doc)
Dado que hay 2 documentos en el categories.yaml
archivo, ejecutamos un bucle para leer ambos.
Salida:
sports : ['soccer', 'football', 'basketball', 'cricket', 'hockey', 'table tennis']
countries : ['Pakistan', 'USA', 'India', 'China', 'Germany', 'France', 'Spain']
Como puede ver en los dos últimos ejemplos, la biblioteca maneja automáticamente la conversión de datos con formato YAML a diccionarios y listas de Python.
Te puede interesar:Algoritmos de búsqueda en PythonEscribir archivos YAML en Python
Ahora que hemos aprendido cómo convertir un archivo YAML en un diccionario Python, intentemos hacer las cosas al revés, es decir, serializar un diccionario Python y almacenarlo en un archivo con formato YAML. Para este propósito, usemos el mismo diccionario que obtuvimos como resultado de nuestro último programa.
import yaml
dict_file = [{'sports' : ['soccer', 'football', 'basketball', 'cricket', 'hockey', 'table tennis']},
{'countries' : ['Pakistan', 'USA', 'India', 'China', 'Germany', 'France', 'Spain']}]
with open(r'E:datastore_file.yaml', 'w') as file:
documents = yaml.dump(dict_file, file)
los dump()
El método toma el diccionario de Python como el primero y un objeto File como el segundo parámetro.
Una vez que se ejecuta el código anterior, un archivo llamado store_file.yaml
se creará en su directorio de trabajo actual.
# store_file.yaml file contents:
- sports:
- soccer
- football
- basketball
- cricket
- hockey
- table tennis
- countries:
- Pakistan
- USA
- India
- China
- Germany
- France
- Spain
Otra funcionalidad útil que ofrece la biblioteca YAML para el dump()
el método es el sort_keys
parámetro. Para mostrar lo que hace, aplicémoslo en nuestro primer archivo, es decir, frutas.yaml:
import yaml
with open(r'E:datafruits.yaml') as file:
doc = yaml.load(file, Loader=yaml.FullLoader)
sort_file = yaml.dump(doc, sort_keys=True)
print(sort_file)
Salida:
apples: 20
bananas: 3
grapes: 100
mangoes: 2
pineapples: 1
Puede ver en la salida que las frutas se han ordenado en orden alfabético.
Conclusión
En este breve tutorial, aprendimos cómo instalar la biblioteca YAML de Python (pyyaml) para manipular archivos con formato YAML. Cubrimos la carga del contenido de un archivo YAML en nuestro programa Python como diccionarios, así como la serialización de diccionarios de Python en archivos YAML y el almacenamiento de sus claves. La biblioteca es bastante breve y solo ofrece funcionalidades básicas.