json モジュールについて (1)¶
json 形式とは¶
JSON(JavaScript Object Notation)は、データのやり取りや保存に広く使用されるデータ形式
軽量、かつ、可読性が高い.
構成は、"キー"と"値"のペアからなるオブジェクト、とリスト
階層構造が可.
Web や多くの言語で使用可能(parserが用意されていることが多い)
json の記法¶
{
// This is a sample of json file
"string" :"This is a pen",
"val1" : 30.0,
"val2" : 2,
"arr1" : [1.0,2.0,3.0,],
"sw1" :true,
"sw2" :false,
"item" :null,
"fml" : " ` np.cos(${val1}/180.0*np.pi) * ${val2} ` ",
"fml2" : " ` np.cos(${val3}/180.0*np.pi) * ${val2} ` ",
"val3" : 60.0,
"val4" : " ` ${val1} + ${val2} ` ",
"val5" : " ` ${val3} * ${val4} ` ",
"val6" : " ` ${val5} / ${val1} ` ",
/* comment line */
}
{...} 内に記載
"キー" : "値", が基本構成
リストは [...]、辞書は {...}
論理とNoneは、 true, false, null
キー、値(文字列)は、ダブルクォーテーションで囲まなくても問題なし
一方で、 "."をキーに含める場合はエラーがでる.
回避にはダブルクォーテーションが必要.
コメント問題:¶
json形式 :コメントは書けない.無理やり書くなら "comment":"This is a comment." など.
json5形式: C-like コメント "//" または、 "/* ... */"
python parser¶
import ( json / json5 )¶
import json
or
import json5
上記の通り、 json5が、多機能なので、json5でよい
json5は標準モジュールでないので、 pip install する必要あり.
シンプルなjson5 parser コマンド¶
import json5
inpFile = "cnf/sample.json"
with open( inpFile, "r" ) as f:
params = json5.load( f )
print( "\n", params, "\n" )
{'string': 'This is a pen', 'val1': 30.0, 'val2': 2, 'arr1': [1.0, 2.0, 3.0], 'sw1': True, 'sw2': False, 'item': None, 'fml': ' ` np.cos(${val1}/180.0*np.pi) * ${val2} ` ', 'fml2': ' ` np.cos(${val1}/180.0*np.pi) * ${val2} ` '}