В результате выполнения задания вы:
- познакомитесь с синтаксисами JSON и YAML;
- узнаете, как преобразовать один формат в другой при помощи пары строк.
- Установлена библиотека PyYAML для Python 3.
- Скопируйте в свой .md-файл содержимое этого файла, исходники можно посмотреть здесь.
- Заполните недостающие части документа решением задач — заменяйте
???
, остальное в шаблоне не меняйте, чтобы не сломать форматирование текста, подсветку синтаксиса. Вместо логов можно вставить скриншоты по желанию. - Любые вопросы по выполнению заданий задавайте в чате учебной группы или в разделе «Вопросы по заданию» в личном кабинете.
Мы выгрузили JSON, который получили через API-запрос к нашему сервису:
{ "info" : "Sample JSON output from our service\t",
"elements" :[
{ "name" : "first",
"type" : "server",
"ip" : 7175
}
{ "name" : "second",
"type" : "proxy",
"ip : 71.78.22.43
}
]
}
Нужно найти и исправить все ошибки, которые допускает наш сервис.
???
В прошлый рабочий день мы создавали скрипт, позволяющий опрашивать веб-сервисы и получать их IP. К уже реализованному функционалу нам нужно добавить возможность записи JSON и YAML-файлов, описывающих наши сервисы.
Формат записи JSON по одному сервису: { "имя сервиса" : "его IP"}
.
Формат записи YAML по одному сервису: - имя сервиса: его IP
.
Если в момент исполнения скрипта меняется IP у сервиса — он должен так же поменяться в YAML и JSON-файле.
???
???
???
???
Это самостоятельное задание, его выполнение необязательно.
Так как команды в нашей компании никак не могут прийти к единому мнению о том, какой формат разметки данных использовать: JSON или YAML, нам нужно реализовать парсер из одного формата в другой. Он должен уметь:
- принимать на вход имя файла;
- проверять формат исходного файла. Если файл не JSON или YAML — скрипт должен остановить свою работу;
- распознавать, какой формат данных в файле. Считается, что файлы *.json и *.yml могут быть перепутаны;
- перекодировать данные из исходного формата во второй доступный — из JSON в YAML, из YAML в JSON;
- при обнаружении ошибки в исходном файле указать в стандартном выводе строку с ошибкой синтаксиса и её номер;
- полученный файл должен иметь имя исходного файла, разница в наименовании обеспечивается разницей расширения файлов.
???
???
В личном кабинете отправлена ссылка на .md-файл в вашем репозитории.
Зачёт:
- выполнены все задания;
- ответы даны в развёрнутой форме;
- приложены соответствующие скриншоты и файлы проекта;
- в выполненных заданиях нет противоречий и нарушения логики.
На доработку:
- задание выполнено частично или не выполнено вообще;
- в логике выполнения заданий есть противоречия и существенные недостатки.
Обязательными являются задачи без звёздочки. Их выполнение необходимо для получения зачёта и диплома о профессиональной переподготовке.
Задачи со звёздочкой (*) являются дополнительными или задачами повышенной сложности. Они необязательные, но их выполнение поможет лучше разобраться в теме.