JSON e YAML
JSON
JSON significa JavaScript Object Notation e é um formato leve para armazenar e transportar dados. JSON é frequentemente usado quando dados são enviados de um servidor para uma página web.
# Read JSON file: json.load() parses JSON from file object
import json
with open("filename.json", "r") as f: # Abrir arquivo no modo de leitura
content = json.load(f) # Analisar JSON e retornar dict/list Python
Escreva um arquivo JSON com:
# 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 arquivo no modo de escrita
json.dump(content, f, indent=2) # Escrever JSON com indentação de 2 espaços
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
json.write()json.dump()json.save()json.export()YAML
Comparado ao JSON, o YAML permite uma manutenibilidade humana muito melhor e dá a capacidade de adicionar comentários. É uma escolha conveniente para arquivos de configuração onde um humano terá que editar.
Existem duas bibliotecas principais que permitem acesso a arquivos YAML:
Instale-as usando pip install no seu ambiente virtual.
A primeira é mais fácil de usar, mas a segunda, Ruamel, implementa muito melhor a especificação YAML, e permite, por exemplo, modificar um conteúdo YAML sem alterar comentários.
Abra um arquivo YAML com:
# Read YAML file using ruamel.yaml library
from ruamel.yaml import YAML
with open("filename.yaml") as f:
yaml=YAML() # Criar instância do analisador YAML
yaml.load(f) # Analisar YAML e retornar dict/list Python
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
Anyconfig
Anyconfig é um pacote muito útil, permitindo abstrair completamente o formato subjacente do arquivo de configuração. Ele permite carregar um dicionário Python de JSON, YAML, TOML, e assim por diante.
Instale-o com:
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") # Detecta o formato automaticamente
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem