如何在bash中使用python读取JSON密钥



在jenkins管道中,我需要解析json,因为我有旧的jenkins,所以我不能使用插件来做这件事。我正在尝试使用python解析为:

metadataJson有json数据

sh 'echo metadataJson | python -c "import sys,os, json; print(json.load(sys.stdin)[os.environ['REPOSITORY']])" '
Error :  unexpected EOF while looking for matching `"'

我知道我可能需要转义引号,但我没有达到正确的语句。有人能告诉我正确的说法吗?我怎样才能把它的输出加载到一个变量中呢?

我知道我没有使用python,但我相信jq(https://stedolan.github.io/jq/)对于你的工作来说是一个更好的工具:

KEY=hi && echo '{"hi": 1}' | jq ".["${KEY}"]"                                                                                                                                      
# output: 1

要回答您最初的问题,请尝试以下操作(将.read()添加到sys.stdin(:

echo '{"hi": 1}' | python3 -c "import sys, json, os; print(json.loads(sys.stdin.read())[os.environ['KEY']])"

相关内容

  • 没有找到相关文章

最新更新