Skip to content

Latest commit

 

History

History
 
 

04-script-03-yaml

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Домашнее задание к занятию "Языки разметки JSON и YAML"

Цель задания

В результате выполнения этого задания вы:

  1. Познакомитесь с синтаксисами JSON и YAML.
  2. Узнаете как преобразовать один формат в другой при помощи пары строк.

Чеклист готовности к домашнему заданию

Установлена библиотека pyyaml для Python 3.

Инструкция к заданию

  1. Скопируйте в свой .md-файл содержимое этого файла; исходники можно посмотреть здесь.
  2. Заполните недостающие части документа решением задач (заменяйте ???, остальное в шаблоне не меняйте, чтобы не сломать форматирование текста, подсветку синтаксиса и прочее) и отправляйте на проверку. Вместо логов можно вставить скриншоты по желанию.
  3. Любые вопросы по выполнению заданий спрашивайте в чате учебной группы и/или в разделе “Вопросы по заданию” в личном кабинете.

Дополнительные материалы

Полезные ссылки для модуля "Скриптовые языки и языки разметки"


Задание 1

Мы выгрузили 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
            }
        ]
    }

Нужно найти и исправить все ошибки, которые допускает наш сервис

Ваш скрипт:

???

Задание 2

В прошлый рабочий день мы создавали скрипт, позволяющий опрашивать веб-сервисы и получать их IP. К уже реализованному функционалу нам нужно добавить возможность записи JSON и YAML файлов, описывающих наши сервисы. Формат записи JSON по одному сервису: { "имя сервиса" : "его IP"}. Формат записи YAML по одному сервису: - имя сервиса: его IP. Если в момент исполнения скрипта меняется IP у сервиса - он должен так же поменяться в yml и json файле.

Ваш скрипт:

???

Вывод скрипта при запуске при тестировании:

???

json-файл(ы), который(е) записал ваш скрипт:

???

yml-файл(ы), который(е) записал ваш скрипт:

???

Дополнительное задание (со звездочкой*) - необязательно к выполнению

Так как команды в нашей компании никак не могут прийти к единому мнению о том, какой формат разметки данных использовать: JSON или YAML, нам нужно реализовать парсер из одного формата в другой. Он должен уметь:

  • Принимать на вход имя файла
  • Проверять формат исходного файла. Если файл не json или yml - скрипт должен остановить свою работу
  • Распознавать какой формат данных в файле. Считается, что файлы *.json и *.yml могут быть перепутаны
  • Перекодировать данные из исходного формата во второй доступный (из JSON в YAML, из YAML в JSON)
  • При обнаружении ошибки в исходном файле - указать в стандартном выводе строку с ошибкой синтаксиса и её номер
  • Полученный файл должен иметь имя исходного файла, разница в наименовании обеспечивается разницей расширения файлов

Ваш скрипт:

???

Пример работы скрипта:

???


Правила приема домашнего задания

В личном кабинете отправлена ссылка на .md файл в вашем репозитории.


Критерии оценки

Зачет - выполнены все задания, ответы даны в развернутой форме, приложены соответствующие скриншоты и файлы проекта, в выполненных заданиях нет противоречий и нарушения логики.

На доработку - задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки.

Обязательными к выполнению являются задачи без указания звездочки. Их выполнение необходимо для получения зачета и диплома о профессиональной переподготовке. Задачи со звездочкой (*) являются дополнительными задачами и/или задачами повышенной сложности. Они не являются обязательными к выполнению, но помогут вам глубже понять тему.