JSON y YAML
JSON
JSON significa JavaScript Object Notation y es un formato ligero para almacenar y transportar datos. JSON se utiliza a menudo cuando los datos se envían desde un servidor a una página web.
# Read JSON file: json.load() parses JSON from file object
import json
with open("filename.json", "r") as f: # Abrir archivo en modo lectura
content = json.load(f) # Analizar JSON y devolver dict/lista de Python
Escribir un archivo JSON con:
# Write JSON file: json.dump() writes Python object as JSON
import json
content = {"name": "Joe", "age": 20}
with open("filename.json", "w") as f: # Abrir archivo en modo escritura
json.dump(content, f, indent=2) # Escribir JSON con sangría de 2 espacios
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
json.write()json.dump()json.save()json.export()YAML
En comparación con JSON, YAML permite una mantenibilidad humana mucho mejor y da la capacidad de añadir comentarios. Es una opción conveniente para archivos de configuración que un humano tendrá que editar.
Hay dos bibliotecas principales que permiten el acceso a archivos YAML:
Instálalas usando pip install en tu entorno virtual.
La primera es más fácil de usar, pero la segunda, Ruamel, implementa mucho mejor la especificación YAML y permite, por ejemplo, modificar un contenido YAML sin alterar los comentarios.
Abrir un archivo YAML con:
# Read YAML file using ruamel.yaml library
from ruamel.yaml import YAML
with open("filename.yaml") as f:
yaml=YAML() # Crear instancia de analizador YAML
yaml.load(f) # Analizar YAML y devolver dict/lista de Python
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
Anyconfig
Anyconfig es un paquete muy útil que permite abstraer completamente el formato subyacente del archivo de configuración. Permite cargar un diccionario de Python desde JSON, YAML, TOML, y otros.
Instálalo con:
pip install anyconfig
Uso:
# anyconfig: load configuration files in various formats (JSON, YAML, TOML, etc.)
import anyconfig
conf1 = anyconfig.load("/path/to/foo/conf.d/a.yml") # Auto-detecta el formato
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje