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 пробела
Викторина

Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения

Какая функция используется для записи словаря Python в файл JSON?
A. json.write()
B. json.dump()
C. json.save()
D. 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
Викторина

Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения

Какое одно из преимуществ YAML перед JSON?
A. Файлы YAML меньше
B. YAML быстрее разбирается
C. YAML допускает комментарии и более читаем для человека
D. YAML встроен в Python

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")  # Автоматическое определение формата
Викторина

Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения

Что позволяет делать библиотека anyconfig?
A. Загружать конфигурационные файлы в различных форматах (JSON, YAML, TOML) без указания формата
B. Преобразовывать между различными форматами конфигурации
C. Проверять синтаксис конфигурационного файла
D. Шифровать конфигурационные файлы