YQ - место, где собираются настоящие коллекционеры
yq - это утилита командной строки для обработки YAML-файлов. Она позволяет пользователю просматривать, фильтровать и изменять данные YAML-файла в удобном формате.
Примеры возможных операций, которые можно выполнить с помощью yq:
1. Просмотр содержимого YAML-файла:
yq r sample.yaml
Эта команда выведет все ключи и значения YAML-файла sample.yaml.
2. Извлечение определенного значения из YAML-файла:
yq r sample.yaml key.subkey
Эта команда извлечет значение, связанное с ключом "key.subkey" из YAML-файла sample.yaml.
3. Обновление значения ключа в YAML-файле:
yq w -i sample.yaml key.subkey "new value"
Эта команда обновит значение ключа "key.subkey" в YAML-файле sample.yaml на "new value".
4. Фильтрация YAML-файла по определенному критерию:
yq r sample.yaml --tojson | jq '.[] | select(.key == "value")' | yq r -
Эта команда выведет все значения ключа "value" из YAML-файла sample.yaml.
Пример кода, демонстрирующий использование yq для чтения значения ключа из YAML-файла в Python:
python
import subprocess
import yaml
def get_key_value(file_path, key_path):
command = "yq r {} {}".format(file_path, key_path)
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
value = yaml.safe_load(output)
return value
Эта функция принимает путь к YAML-файлу и путь к ключу, значение которого нужно извлечь. Она выполняет команду yq и возвращает значение ключа в формате словаря Python. Это решение позволяет удобно работать с YAML-файлами в приложениях, написанных на Python.