json.py の意外な使い方
 2006.07.30

JSONはJavaScriptとデータ交換を行うのに適したデータフォーマットです. PythonでJSONを扱うモジュールを紹介しました.PythonとJSON. このモジュールの便利な使い方を紹介します. Pythonでプログラミングする時,簡単なデバッグ方法としてスクリプト中でオブジェクトを表示させたりします.例:
d = {'apple': 'りんご', 'peach':'桃'}
print >>sys.stderr, d
辞書,リストあるいはタップル等のキー・値に日本語が入っている場合,エスケープされた値が表示されます.上記の例を実行すると以下のような出力になります(EUC-JPの場合).
{'apple': 'xa4xeaxa4xf3xa4xb4', 'peach': 'xc5xed'}
dictオブジェクトdを表示するときに json.write() 使って文字列に変更すると,エスケープされずに出力できます.例:
dragon-[2]% cat dicprint.py
# -*- coding: euc-jp -*-
import sys, json
d = {'apple': 'りんご', 'peach': '桃', 'one':1, 'tow': 2, 'range(3)': range(3)}
print >>sys.stderr, 'json.write(d) ', json.write(d)

dragon-[3]% python dicprint.py
json.write(d)  {"range(3)":[0,1,2],"tow":2,"apple":"りんご","peach":"桃","one":1}
2006/8/2追記: ただし,Pythonのtupleを出力すると,listのように`[]’付きで出力されます.その辺は脳内変換で補うということで….
>>>json.write(('foo', 'bar', 1.2, 20))
'["foo","bar",1.200000,20]'
>>>
カテゴリー:python&zope