Python : json モジュールで json 読み込み
JSON (JavaScript Object Notation) は非常に便利. もともと JavaScript 用に作られたデータ形式ですが, 最近は他の言語でもちらほらサポートされています. Python では読み込むだけでそのまま Python 内のオブジェクトと同じように使えるので データ記述の主流である xml よりも使いやすかったりします.
Python の json モジュールを読み込むだけで簡単に使えるので, よかったら使ってみてください. サンプル載せておきます.
SAMPLE
読み込むデータ(sample.json)
json の構文チェックはこちらのサイトが便利です.
[ { "name":"C", "appearedIn":1973, "influencedBy":["B", "ALGOL", "Assembly", "Pascal"] }, { "name":"C++", "appearedIn":1980 }, { "name":"Python", "appearedIn":1990 }, { "name":"Java", "appearedIn":1995 }, { "name":"JavaScript", "appearedIn":1995 }, { "name":"C#", "appearedIn":2000 } ]
Python Code
# coding: utf-8 # json モジュールを使ってみる # json モジュールをインポート import json # jsonファイルを読み込む f = open("sample.json") # jsonデータを読み込んだファイルオブジェクトからPythonデータを作成 data = json.load(f) # ファイルを閉じる f.close() # 普通に表示 print("普通に表示") print(data) # キレイに表示 print("キレイに表示") print(json.dumps(data, sort_keys=True, indent=4)) # 中身に直接アクセス print("中身に直接アクセス") print(data[0]["name"]) print(data[0]["appearedIn"]) print( "Name : {obj[name]}, appearedIn : {obj[appearedIn]}".format(obj = data[0]) ) print( "influencedBy", ", ".join(data[0]["influencedBy"]) ) """ 実行結果 普通に表示 [{'influencedBy': ['B', 'ALGOL', 'Assembly', 'Pascal'], 'name': 'C', 'appearedIn': 1973}, {'name': 'C++', 'appearedIn': 1980}, {'name': 'Python', 'appearedIn': 1990}, {'name': 'Java', 'appearedIn': 1995}, {'name': 'JavaScript', 'appearedIn': 1995}, {'name': 'C#', 'appearedIn': 2000}] キレイに表示 [ { "appearedIn": 1973, "influencedBy": [ "B", "ALGOL", "Assembly", "Pascal" ], "name": "C" }, { "appearedIn": 1980, "name": "C++" }, { "appearedIn": 1990, "name": "Python" }, { "appearedIn": 1995, "name": "Java" }, { "appearedIn": 1995, "name": "JavaScript" }, { "appearedIn": 2000, "name": "C#" } ] 中身に直接アクセス C 1973 Name : C, appearedIn : 1973 influencedBy B, ALGOL, Assembly, Pascal """
TM Life http://t.co/11v69xS
JSON形式のデータを処理するコード書いてたんだが、XML形式と比較するとだいぶ簡潔なコードで済むんでビックリしたわ。参考までに比較用のURL貼っとく。 JSONの場合 http://t.co/HWeUhpDI XMLの場合 http://t.co/7BMHsEDf
json 扱うので:Python : json モジュールで json 読み込み | TM Life http://t.co/6ympHRUTyN #python