Загрузка...

WWW: jq — процессор JSON, который позволяет одной строкой фильтровать и трансформировать данные

Тема в разделе Программирование создана пользователем Snippy_inactive97066 11 сен 2017. 325 просмотров

  1. Snippy_inactive97066
    Snippy_inactive97066 Автор темы 11 сен 2017 Заблокирован(а) 1 24 мар 2017
    Каждый, кто работал с JSON, знает, насколько этот формат проще и удобнее, чем XML, но при этом гибче, чем, например, CSV. Утилита под названием jq — отличный инструмент, который выводит работу JSON на принципиально новый уровень: с ней, чтобы перебрать массив данных, не нужно писать никаких скриптов — хватит запроса наподобие SQL.
    Для установки jq достаточно скачать исполняемый файл — есть версии для Windows, macOS и Linux. Подобно grep, sed, awk и похожим утилитам из арсенала юниксоида, jq просто принимает данные на вход и выводит результаты в stdout. К примеру, чтобы прочитать и вывести данные из файла data.json в UNIX-подобных системах, надо написать

    cat data.json | jq '.'
    В одинарных кавычках содержатся инструкции jq (в данном случае — точка, то есть вывод всех данных). Эти инструкции пишут на языке, который предназначен специально для фильтрации и преобразования JSON.


    Для упражнения я взял массив данных, который мы собирали, готовя тему номера «Секреты даркнета». В этом файле содержится четыре с лишним тысячи ссылок на теневые ресурсы и для каждой прописаны категория, URL, заголовок и количество входящих ссылок с других сайтов в .onion.

    Хорошенько полазив по странице документации, я в качестве упражнения сочинил запрос, который выбирает сайты определенной категории и с количеством входящих ссылок не меньше заданного количества. А в конце еще фильтрует те, где в заголовке есть конкретное слово.

    [IMG]
    Как видишь, фильтры можно комбинировать, скармливая выход одного на вход другому. А еще у jq есть внушительное количество встроенных функций, поддержка регулярных выражений, условия и переменные. В общем, целый новый язык, который дарует тебе новую суперспособность.
     
Загрузка...
Top