命令行YAML/XML处理器 - YAML/XML文档的jq包装器
项目描述
安装
pip install yq
在使用 yq 之前,您还需要安装其依赖项,jq。有关详细信息以及针对您平台的特定说明,请参阅 jq安装说明。
在macOS上,yq 也可在 Homebrew 上使用:使用 brew install python-yq。
概述
yq 接收YAML输入,将其转换为JSON,并将其管道传输到 jq
cat input.yml | yq .foo.bar
类似于 jq,您也可以指定输入文件名作为参数
yq .foo.bar input.yml
默认情况下,不转换 jq 输出。使用 --yaml-output/-y 选项将其转换回YAML
cat input.yml | yq -y .foo.bar
映射键顺序得到保留。默认情况下,输入中的自定义YAML标签和样式将被忽略。使用--yaml-roundtrip/-Y选项可以保留YAML标签和样式,通过在JSON中将其表示为封装映射和序列中的额外项目。
yq -Y .foo.bar input.yml
如果需要,yq可以作为模块调用。使用-y/-Y,文件可以像使用sed -i一样就地编辑。
python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config
使用--width/-w选项传递字符串字面量的换行宽度。使用--explicit-start/--explicit-end在处理单个文档时也输出YAML的开始/结束标记。所有其他命令行参数都转发给jq。当没有YAML解析错误时,yq将转发由jq产生的退出代码,否则退出代码为1。有关jq功能和选项的更多信息,请参阅jq手册。
因为YAML将JSON视为YAML方言,所以可以使用yq将JSON转换为YAML:yq -y . < in.json > out.yml。
XML支持
yq 同样支持 XML。该 yq 软件包安装了一个可执行文件 xq,它使用 xmltodict 将 XML 转换为 JSON,并将其通过管道传递到 jq。可以使用 xq --xml-output/xq -x 选项进行往返转换。可以将多个 XML 文档作为 xq a.xml b.xml 的形式通过单独的文件/流传递。如果想要确保特定的 Python 运行时,请使用 python -m yq.xq。实体扩展和 DTD 解析被禁用,以避免 XML 解析漏洞。
TOML 支持
yq 也支持 TOML。该 yq 软件包安装了一个可执行文件 tomlq,它使用 tomlkit 库 将 TOML 转换为 JSON,然后通过管道传递到 jq。可以使用 tomlq --toml-output/tomlq -t 选项进行往返转换。如果想要确保特定的 Python 运行时,请使用 python -m yq.tomlq。
链接
jq - 为 yq 提供动力的命令行 JSON 处理实用工具
错误
请在 GitHub 上报告错误、问题、功能请求等。
许可证
基于 Apache 许可证 2.0 版本授权。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
yq-3.4.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ba586a1a6f30cf705b2f92206712df2281cd320280210e7b7b80adcb8f256e3b |
|
MD5 | 66ca6bdebece9f1b327b639bbd262bad |
|
BLAKE2b-256 | 386aeb9721ed0929d0f55d167c2222d288b529723afbef0a07ed7aa6cca72380 |
yq-3.4.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 547e34bc3caacce83665fd3429bf7c85f8e8b6b9aaee3f953db1ad716ff3434d |
|
MD5 | 1c4acc21ef0cce8fa3c2504b6e8285ee |
|
BLAKE2b-256 | f2bad1b21f3e57469030bd6536b91bb28fedd2511d4e68b5a575f2bdb3a3dbb6 |