Как проанализировать файл JSON, как это? - PullRequest
0 голосов
/ 31 октября 2019

Я бы хотел проанализировать этот JSON-файл .

, чтобы получить что-то подобное со вторым столбцом как Canonical SMILES и третьим столбцом как Isomeric SMILES.

5317139<TAB><TAB>CCCC=C1C2=C(C3C(O3)CC2)C(=O)O1<TAB>CCC/C=C\\1/C2=C(C3C(O3)CC2)C(=O)O1

Может кто-нибудь показать мне, как сделать это наилучшим образом в JQ?

1 Ответ

0 голосов
/ 31 октября 2019

Следующий скрипт jq (запускается с параметром командной строки -r) соответствует заявленным требованиям, если допустить, что вхождение <TAB><TAB> является опечаткой:

def getString($TOCHeading):
  .. | objects | select( .TOCHeading == $TOCHeading)
  | .Information[0].Value.StringWithMarkup[0].String;

.Record
| [.RecordNumber,
   getString("Canonical SMILES"),
   getString("Isomeric SMILES")]
| @tsv

Этот скрипт выдает:

5317139 CCCC=C1C2=C(C3C(O3)CC2)C(=O)O1  CCC/C=C\\1/C2=C(C3C(O3)CC2)C(=O)O1
...