有没有一个快速的方法来转换一堆yaml文件到json文件。我看了yaml2json,它不工作(抛出一些异常)谢谢
uoifb46i1#
添加答案,因为最新版本的yq没有答案(除了评论中)。
brew install yq yq -j eval test.yaml
或者,更新的语法:
yq -o=json eval test.yml
tjvv9vkg2#
使用https://github.com/mikefarah/yq中的真实的yq(而不是python yq)brew reinstall yq然后跑:/usr/local/bin/yq eval deployment.yaml -o=json -P > deployment.json参数的含义,从--help:
brew reinstall yq
/usr/local/bin/yq eval deployment.yaml -o=json -P > deployment.json
--help
-P, --prettyPrint pretty print, shorthand for '... style = ""' -o, --output-format string [yaml|y|json|j|props|p|xml|x] output format type. (default "yaml")
fcy6dtqo3#
你可以将你的YAML管道到这个(需要安装pyYAML)
python -c 'import yaml; import json; import sys; print(json.dumps(yaml.safe_load(sys.stdin)));'
ycggw6v24#
使用当前版本的yq(v4.24.5):yq eval -o json my.yaml > my.json请注意,(对于4.18.1)eval是默认命令,当没有为yq提供任何命令时,这意味着这也可以正常工作。yq -o json my.yaml > my.json
yq
yq eval -o json my.yaml > my.json
4.18.1
eval
yq -o json my.yaml > my.json
v64noz0r5#
安装yq,yaml 2 json不会为mac工作
brew install yq
然后使用它:
yq -o=json test-env.yml > test-env.json
这里test-env.json是输出文件
yyhrrdl86#
要在Andrew's answer上即兴发挥,如果你有Python和PyYaml,那么你可以定义一个快速的bash/zsh(是的,它在两个上都有效)函数:
jconvyamljson(){ if [[ ! -f $1 ]]; then >&2 echo need to provide an existing file to convert exit 1 fi cat $1 | python -c 'import yaml; import json; import sys; print(json.dumps(yaml.safe_load(sys.stdin)));' }
使用就像这样简单:如果需要的话,通过管道连接到yaml进行格式化/处理
jconvyamljson directive.Usergroup_list.yaml | jq .cssc_table "table table-striped table-bordered table-condensed"
或者,处理丢失的文件:
jconvyamljson this-file-doesnt-exist | jq .cssc_table need to provide an existing file to convert
6条答案
按热度按时间uoifb46i1#
添加答案,因为最新版本的yq没有答案(除了评论中)。
或者,更新的语法:
tjvv9vkg2#
使用https://github.com/mikefarah/yq中的真实的yq(而不是python yq)
brew reinstall yq
然后跑:
/usr/local/bin/yq eval deployment.yaml -o=json -P > deployment.json
参数的含义,从
--help
:fcy6dtqo3#
你可以将你的YAML管道到这个(需要安装pyYAML)
ycggw6v24#
使用当前版本的
yq
(v4.24.5):yq eval -o json my.yaml > my.json
请注意,(对于
4.18.1
)eval
是默认命令,当没有为yq
提供任何命令时,这意味着这也可以正常工作。yq -o json my.yaml > my.json
v64noz0r5#
安装yq,yaml 2 json不会为mac工作
然后使用它:
这里test-env.json是输出文件
yyhrrdl86#
要在Andrew's answer上即兴发挥,如果你有Python和PyYaml,那么你可以定义一个快速的bash/zsh(是的,它在两个上都有效)函数:
使用就像这样简单:
如果需要的话,通过管道连接到yaml进行格式化/处理
或者,处理丢失的文件: