【发布时间】:2019-01-31 10:23:13
【问题描述】:
我有一个 json 文件。一个简单的例子如下:
[
{
"host": "a.com",
"ip": "1.2.2.3",
"port": 8,
"name":"xyz"
},
{
"host": "b.com",
"ip": "2.5.0.4",
"port": 3,
"name":"xyz"
},
{
"host": "c.com",
"ip": "9.17.6.7",
"port": 4,
"name":"xyz"
}
]
我想提取“host”和“ip”值并将它们添加到逗号分隔值文件中。一行中的每条记录如下:
a.com,1.2.2.3
b.com,2.5.0.4
c.com,9.17.6.7
我安装了 jq 库来解析 json 文件。我执行了这个命令:
cat test.json | jq '.[] | {host: .host, ip: .ip}'
我得到的输出如下:
{
"host": "a.com",
"ip": "1.2.2.3"
}
{
"host": "b.com",
"ip": "2.5.0.4"
}
{
"host": "c.com",
"ip": "9.17.6.7"
}
有什么方法可以提取我想要的输出吗? jq 产生的这个输出需要额外的脚本来解析它,并以 csv 格式保存我想要的值,一行中的一项。
【问题讨论】:
-
@csv运算符不正是你想要的吗?
标签: python json csv parsing jq