Python permite trabajar con facilidad con datos escritos en YAML, que no es más que una forma muy sencilla, concisa y potente de guardar estructuras complejas de datos en formato texto, fácilmente legible y editable.
La librería que permite a Python trabajar con YAML es PyYAML:
Página oficial de PyYAMLDescarga de PyYAMLEsta librería tiene básicamente dos funciones para convertir datos en YAML y para convertir YAML a datos.
En la página de documentación de PyYAML se explica con detalle.
En Python los datos se escribirían así:
datos = {
'Nombre': ['Arturo', 'Lopez', 'Garcia'],
'Edad': 38,
'e-mail': ['arturo@arturo.com', 'arturo@gmail.com', 'arturo@hotmail.com']
}
En YAML los mismos datos se pueden escribir así (de forma extendida):
Nombre:
- Arturo
- Lopez
- Garcia
Edad: 38
e-mail:
- arturo@arturo.com
- arturo@gmail.com
- arturo@hotmail.com
O así (de forma resumida):
Nombre: [Arturo, Lopez, Garcia]
Edad: 38
e-mail: [arturo@arturo.com, arturo@gmail.com, arturo@hotmail.com]
Para transformar de uno a otro con Python:
import yaml
# Escribir lista en YAML
print yaml.dump({
'Nombre': ['Arturo', 'Lopez', 'Garcia'],
'Edad': 38,
'e-mail': ['arturo@arturo.com', 'arturo@gmail.com', 'arturo@hotmail.com']
})
# Leer datos desde código YAML
print yaml.load("""
Nombre:
- Arturo
- Lopez
- Garcia
Edad: 38
e-mail:
- arturo@arturo.com
- arturo@gmail.com
- arturo@hotmail.com
""")
YAML se parece mucho a los datos Python a la hora de escribir, pero es todavía más simple. Además YAML se puede leer por multitud de lenguajes, no solo Python, haciendo los datos más portables aún.
YAML incluye también punteros para abreviar la escritura de datos repetidos.
Si quieres guardar muchos datos en un formato legible y sencillo de editar (texto) YAML es tu lenguaje.
Un saludo.