Просто запустите jq
a JSON-процесс командной строки r
$ json_data='{"value1":5.0,"value2":2.5,"value3":"2019-10-24T15:26:00.000Z","modifier":[]}'
$ jq '.value2' <(echo "$json_data")
2.5
с ключом .value2
для доступа к интересующему вас значению.
Эта ссылка обобщает, почему вы должны НЕ использовать, регулярное выражение для анализа json
(то же самое касается XML / HTML и других структур данных, которые находятся в
теория может быть бесконечно вложенной)
Regex для разбора одного ключа: значения из JSON в Javascript
Если у вас нет jq
в наличии:
вы можете использовать следующую команду GNU grep
:
$ echo '{"value1":5.0,"value2":2.5,"value3":"2019-10-24T15:26:00.000Z","modifier":[]}' | grep -zoP '"value2":\s*\K[^\s,]*(?=\s*,)'
2.5
с использованием регулярного выражения, детализированного здесь:
"value2":\s*\K[^\s,]*(?=\s*,)
демо: https://regex101.com/r/82J6Cb/1/
Это будет работать, даже если json не линеаризован !!!!
С python
это также довольно прямолинейно, и вы должны установить его по умолчанию на свою машину, даже если это не python3, он должен работать
$ cat data.json
{"value1":5.0,"value2":2.5,"value3":"2019-10-24T15:26:00.000Z","modifier":[]}
$ cat extract_value2.py
import json
with open('data.json') as f:
data = json.load(f)
print(data["value2"])
$ python extract_value2.py
2.5