JSON и YAML
JSON
JSON (JavaScript Object Notation) — это легковесный формат для хранения и передачи данных. JSON часто используется, когда данные отправляются с сервера на веб-страницу.
# Read JSON file: json.load() parses JSON from file object
import json
with open("filename.json", "r") as f: # Открыть файл в режиме чтения
content = json.load(f) # Разобрать JSON и вернуть Python dict/list
Запись JSON-файла с помощью:
# Write JSON file: json.dump() writes Python object as JSON
import json
content = {"name": "Joe", "age": 20}
with open("filename.json", "w") as f: # Открыть файл в режиме записи
json.dump(content, f, indent=2) # Записать JSON с отступом в 2 пробела
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
json.write()json.dump()json.save()json.export()YAML
По сравнению с JSON, YAML обеспечивает гораздо лучшую читаемость для человека и дает возможность добавлять комментарии. Это удобный выбор для конфигурационных файлов, которые будут редактироваться человеком.
Существуют две основные библиотеки, предоставляющие доступ к файлам YAML:
Установите их с помощью pip install в вашей виртуальной среде.
Первая проще в использовании, но вторая, Ruamel, гораздо лучше реализует спецификацию YAML и позволяет, например, изменять содержимое YAML без изменения комментариев.
Открытие файла YAML с помощью:
# Read YAML file using ruamel.yaml library
from ruamel.yaml import YAML
with open("filename.yaml") as f:
yaml=YAML() # Создать экземпляр парсера YAML
yaml.load(f) # Разобрать YAML и вернуть Python dict/list
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
Anyconfig
Anyconfig — очень удобный пакет, позволяющий полностью абстрагировать базовый формат конфигурационного файла. Он позволяет загружать словарь Python из JSON, YAML, TOML и других форматов.
Установите его с помощью:
pip install anyconfig
Использование:
# anyconfig: load configuration files in various formats (JSON, YAML, TOML, etc.)
import anyconfig
conf1 = anyconfig.load("/path/to/foo/conf.d/a.yml") # Автоматическое определение формата
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения