txtファイルを分離するためにjsonから配列を抽出する方法

txtファイルを分離するためにjsonから配列を抽出する方法

.jsonファイルがあり、SliceTimingフィールドを別々のtxtファイルに抽出する必要があります。 jqは使用できません。私ができるなら、私のコマンドは次のようになります。

jq .SliceTiming[] *.json

.json ファイルです。

{
"EchoTime": 0.033,
"RepetitionTime": 0.75,
"EffectiveEchoSpacing": 0.0005,
"SliceTiming": [
    0.51,
    0,
    0.365,
    0.0725,
    0.4375,
    0.2175,
    0.5825,
    0.2925,
    0.6575,
    0.145,
    0.51,
    0,
    0.365,
    0.0725,
    0.4375,
    0.2175,
    0.5825,
    0.2925,
    0.6575,
    0.145,
    0.51,
    0,
    0.365,
    0.0725,
    0.4375,
    0.2175,
    0.5825,
    0.2925,
    0.6575,
    0.145,
    0.51,
    0,
    0.365,
    0.0725,
    0.4375,
    0.2175,
    0.5825,
    0.2925,
    0.6575,
    0.145,
    0.51,
    0,
    0.365,
    0.0725,
    0.4375,
    0.2175,
    0.5825,
    0.2925,
    0.6575,
    0.145,
    0.51,
    0,
    0.365,
    0.0725,
    0.4375,
    0.2175,
    0.5825,
    0.2925,
    0.6575,
    0.145   ],
"PhaseEncodingDirection": "j-"}

ベストアンサー1

Pythonが許可されているようです。これが私が好む解決策です。

私はデータの極端なケースがわからないので、sed、grep、awkを扱うのは不便です。

配列を標準出力として印刷するには使用してください。

cat data.json | python -c "import sys, json; print json.load(sys.stdin)['SliceTiming']"

メモ:この例ではpython2.7を使用し、python3.xでは機能しないようです。

値を出力するだけです。いいえ[]いいえ,

slice_out.pyインラインターミナルを行うための良い方法が見つからずに作成しました。

import sys, json
slice_data = json.load(sys.stdin)['SliceTiming']
for s in slice_data: print s

一緒に走るcat data.json | python slice_out.py

おすすめ記事