43
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでJSONのエンコード、デコード

Last updated at Posted at 2015-02-12

JSONで連想配列を扱う

連想配列をJSONにエンコードしてTCPやUDPで送ったり、JSONで書かれた設定ファイルを読み込むなど、最近使う機会が増えたのでメモ。

エンコード

連想配列のデータが頻繁に書き換わり、それらの内容を配列ごと通信で送りたい場合などは、JSONを使えば便利。

例えば何かの3次元座標を取得し、連想配列に格納するとする。

>>> import json
>>> list = {'x': 100, 'y': 200, 'z': 300}
>>> json.dumps(list)
'{"x": 100, "y": 200, "z": 300}'

今回の例は簡単なデータなので、わざわざ連想配列にする必要もないが、データの種類が多岐にわたる場合や、その順番をいちいち覚えてらんないときに、キーでデータが取り出せるというのはすごく楽。

JSONにエンコードしたデータを何らかの通信でどこかへ送る場合なんかも、キーさえ教えておけば、受け取る側はデータの取り出しが簡単になる。
そこで、JSONのデコード。

デコード

先ほど使ったlistをエンコードして、変数に代入し、それをデコードしてみる。

>>> import json
>>> list = {'x': 100, 'y': 200, 'z': 300}
>>> enc = json.dumps(list)
>>> print enc
'{"x": 100, "y": 200, "z": 300}'
>>> dec = json.loads(enc)
>>> print dec
{u'y': 200, u'x': 100, u'z': 300}
>>> print dec['x']
100

こんな感じ。
デコードしたあとは、中の要素の順番はばらばらになる。まあどうせ参照する際はキーで呼び出すので順番は関係ない。

43
41
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?