この章では、Python 言語を使用して JSON オブジェクトをエンコードおよびデコードする方法を紹介します。
Python 2.7にはJSONモジュール[公式ドキュメント]
1が付属しています。Pythonの元の型からjson型への変換プロセス、具体的な変換は次のとおりです:
import json
json.dump(obj, fp、skipkeys=False、ensure_ascii=True、check_circular=True、allow_nan=True、cls=None、indent=None、separators=None、encoding=”utf-8”、default=None、sort_keys=False、**kw)
json.dumps(obj,skipkeys=False,ensure_ascii=True,check_circular=True,allow_nan=True,cls=None,indent=None,separators=None,encoding=”utf-8”,default=None, sort_keys= False、**kw)
python python json json
---------------------------- ------- --------
dictでnull
>>> import json
> >> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo ", {"bar": ["baz", null, 1.0, 2]}]'
>>> f = open('demo.txt','w')
>> ;> json.dump(range(100), f)
#demo.txt を開くと、
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11, 12, 13, 14, 15, 16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、 41、42、43、44、45、46、47、48、49、50、51、52、53、54、55、56、57、58、59、60、61、62、63、64、65、 66、67、68、69、70、71、72、73、74、75、76、77、78、79、80、81、82、83、84、85、86、87、88、89、90、 91, 92, 93, 94, 95, 96, 97, 98, 99]
2. json 型から Python への変換プロセス、具体的な変換は次のとおりです:
import json
json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]] ]]])
json.loads(s[、エンコーディング[、cls[、object_hook[、parse_float[、parse_int[、parse_constant[、object_pairs_hook[、**kw]]]]]])
json json python D オブジェクトDict
配列リスト
String Str
Number (int) int
Number (Real) Float
True Trse False
NULL NONE
GT; & GT; & GT & GT;
>>> json.loads('{"a": 1, "b": 2, "c": 3}') # Python オブジェクトへの文字列
{u'a': 1, u' c': 3, u'b': 2}
# 1.txtの内容
[{"a": [1, 2, 3, 4, 5]}, {"b" : [1, 2, 3]}, {"c": ["英語", "中国語"]}]
>>> f = open('1.txt')
> ;> json.load(f)
[{u'a': [1, 2, 3, 4, 5]}, {u'b': [1, 2, 3]}, {u' c ': [u'English', u' Chinese']}]
古いバージョンの Python 環境設定 (Python の json モジュールが付属しているユーザーはそれを見る必要はありません)
使用JSON をエンコードまたはデコードするための Python データの前に、まず JSON モジュールをインストールする必要があります。このチュートリアルでは、Demjson をダウンロードしてインストールします。
$tar
JSON 関数
Function
Description
encode Python オブジェクトを JSON 文字列にエンコードします
デコード デコードエンコードされた JSON 文字列を Python オブジェクトにエンコードする
encode
Python encode() Python オブジェクトを JSON 文字列にエンコードする関数。
構文
demjson.encode(self, obj, nest_level=0)
例
次の例は、配列を JSON 形式のデータにエンコードします。
# ! /usr/bin/python
import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = demjson.encode(data)
print json
上記のコードの実行結果は次のとおりです:
[{"a":1,"b" :2," c":3,"d":4,"e":5}]
decode
Python では demjson.decode() 関数を使用して JSON データをデコードできます。この関数は、Python フィールドのデータ型を返します。
構文
demjson.decode(self, txt)
例
次の例は、Python が JSON オブジェクトをデコードする方法を示しています。
#!/usr/bin /pythonimport demjson json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; text = demjson.decode(json)print text 上記のコードの実行結果は次のようになります: {u'a': 1, u'c': 3, u' b': 2、u'e': 5、u'd': 4}