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

xu3bshqb  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(250)

在jenkins管道中,我需要解析json,因为我有老jenkins,所以我不能使用插件来解析json
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 `"'

我明白我可能需要避开引语,但我没有找到正确的说法。有人能告诉我正确的语句吗?我怎样才能把它的输出加载到变量中?

bz4sfanl

bz4sfanl1#

我知道我没有使用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']])"

相关问题