Shell 解析 JSON

此功能仅用于查看本机公网地址,请勿用于其他用途,并遵守中国法律法规。

Shell 下使用 jq 解析 JSON,十分方便。

源数据

curl ipw.cn/locate
{
    "result":true,
    "IP":"106.224.145.147",
    "Address":{
        "Country":"中国",
        "Province":"江西",
        "City":"南昌"
    },
    "ISP":"电信"
}
1
2
3
4
5
6
7
8
9
10
11

1. 使用 jq 解析 JSON 串

curl -s ipw.cn/locate | jq .IP
"106.224.145.147"
1
2
  • 获取字典长度
curl -s ipw.cn/locate | jq ".Address"
{
  "Country": "中国",
  "Province": "江西",
  "City": "南昌"
}

curl -s ipw.cn/locate | jq ".Address | length"
3
1
2
3
4
5
6
7
8
9
  • 获取嵌套数据
curl -s ipw.cn/locate | jq .Address.City
"南昌市"
1
2

2. Python 解析 JSON 串

curl -s ipw.cn/locate | \
  python -c "import sys, json; print json.load(sys.stdin)['IP']"
106.224.145.147
1
2
3

reference