【问题标题】:Extract data from json file using grep and sed使用 grep 和 sed 从 json 文件中提取数据
【发布时间】:2017-10-13 16:40:19
【问题描述】:

我有一个名为 output.jsonjson 文件。它有一个简单的 key:value 格式,例如:

{
    "key":"value",
    "key":"value",
    "key":"value",
    "key":"value",
}

我想提取“价值部分”

如果有人可以给我写一个非常有用的命令。

【问题讨论】:

  • 最好使用jq
  • stackoverflow 不是 “为我做这个,谢谢” 代码服务,请提供一些代码示例来说明您尝试解决此问题并描述您在尝试时遇到的问题。
  • 只是不要用grep之类的解析json

标签: json shell grep


【解决方案1】:

使用jq(比grep/sed/awk/etc 更适合解析和过滤JSON),您可以使用values function 提取所有值:

$ echo '{"a":1, "b":2, "c":3}' | jq '.[]|values'
1
2
3

或者(因为您提到您已经在管道中使用 Python),您可以这样做:

#!/usr/bin/env python
import json
my_values = json.load('output.json').values()

【讨论】:

  • 我需要使用 grep。在一个大的 python 脚本中添加这一行。我做了一些谎言#grep -m 1 "\"${1}\"" /home/ajay/file.json | sed -r 's/^ *//;s/.*: *"//;s/",?//' 但它不起作用
  • 那你为什么不用Python呢? (json.loads("..input..").values())
  • @ajaysheoran2323,这个答案好运吗?
  • 是的得到了答案。谢谢大家。
猜你喜欢
  • 2014-07-21
  • 2015-06-11
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多