在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']])"