我在回显中有一个shell脚本的最终结果,我想将其转换为json对象

时间:2018-11-14 03:13:46

标签: python json shell jq

我得到了一个长外壳脚本的最终结果,我想将其转换为json对象,有什么简单的方法可以通过管道传递回声|投入其中

echo "name=$get_name
pass=$get_pass
value=$get_value
key=$get_key
port=$get_port
server_ip=$get_ip" | jq 

我想得到像json这样的结果

     {
      "pass": "$get_pass"
       "value": "$get_value"
       "key": "$get_key"
        "port": "$get_port"
        "server_ip": "$get_ip"
       }

1 个答案:

答案 0 :(得分:0)

echo 'name=$get_name
pass=$get_pass
value=$get_value
key=$get_key
port=$get_port
server_ip=$get_ip' | jq -Rs '
  split("\n")
  | map(capture("(?<k>^[^=]*)=(?<v>.*)")  | {(.k): .v} )
  | add'

以您指定的格式产生输出:

{
  "name": "$get_name",
  "pass": "$get_pass",
  "value": "$get_value",
  "key": "$get_key",
  "port": "$get_port",
  "server_ip": "$get_ip"
}

显然,如果您希望在echo时对$ get_name进行求值,则可以使用双引号。