【问题标题】:Input a JSON variable to python -mjson.tool向 python -mjson.tool 输入 JSON 变量
【发布时间】:2015-07-13 19:58:16
【问题描述】:

因此,为了使用 bash 解析 JSON,我使用 python -mjson.tool 来 grep 字段并使用 awk 来获取值。我曾经在 curl 之后立即对其进行管道传输,因此我可以执行类似 curl $url | python -mjson.tool | grep (something) | awk (something) 的操作,但我想将 curl 输出存储到一个变量并将其发送到 python -mjson.tool。我试过python -mjson.tool $jsonpython -mjson.tool <<< $json,但都没有奏效。有没有办法将json变量输入python?

另外,我不能使用 jq。

【问题讨论】:

  • 第二次尝试应该会奏效,尽管引用变量扩展可能会有所作为(无论如何你都应该这样做)。话虽这么说,您实际上从不在管道中需要grep | awk,因为 awk 几乎可以(如果不是实际上)完成所有grep 可以做的事情,对于这类事情,最好只使用无论如何直接python。
  • 你能详细说明不使用 grep 吗?我认为如果我 grep 一个字段,它会更具可读性。
  • awk 可以搜索具有给定文本本身的行。以/foo/ {<awk commands here only happen on lines that match 'foo'} 为例。
  • 还有一个很棒的工具,叫做jsawk,它可能对你有用。

标签: python json bash curl


【解决方案1】:

在 bash 中,您需要引用变量。如果不这样做,它将折叠空格:

bash-3.2$ x=$'a\tb\nc'
bash-3.2$ cat <<< $x
a b c
bash-3.2$ cat <<< "$x"
a   b
c

【讨论】:

    猜你喜欢
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2016-05-27
    • 2020-03-03
    • 2022-01-24
    相关资源
    最近更新 更多