2015年11月28日

JSONを使おう

JSON は JavaScript Object Notation の略で、データ記述言語の一つです。名前の通り元々は JavaScript 用に開発されたのですが、その使い勝手の良さから多くの言語がサポートしています。

JSON の長所は以下のようになります。

  • 仕様がシンプル!
  • テキストベースでヒューマンリーダブル
  • 書式がソースコードに近い
  • Python をはじめ多くの言語が対応している


Python には json というライブラリが標準に含まれています。
使う関数は以下の4つになります。
No.関数変換処理
1json.dumpsオブジェクト → JSON文字列
2json.dumpオブジェクト → JSONファイル
3json.loadsJSON文字列 → オブジェクト
4json.loadJSONファイル → オブジェクト


json.dumps と json.loads の使い方をヘルプより抜粋します。
>>> import json

# オブジェクト → JSON文字列
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'

# JSON文字列 → オブジェクト
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]

json.dumps(とjson.dump)はインデントの調整も可能です。
>>> print(json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4))
{
    "4": 5,
    "6": 7
}
json ライブラリの各関数は、無駄がなく洗練されています。JSON の思想ともよく合致していますね。


JSON の主な使い所は、他言語とのデータのやり取り、デバッグや内部情報の出力、等になります。中でも他言語とのやり取りを手軽にできるという点は、他のデータ記述言語よりも抜きん出ています。

一方、コメントが書けない、書き方がソースコード的である、という点から設定ファイルとして使うのにはあまり向いていません(特に非エンジニアも編集する場合)。

0 件のコメント:

コメントを投稿