2011-11-22 25 views
8

次のjsonファイルを反復処理するにはどうすればいいですか?fa = "cc.ee"ならばfbの中に値を追加しますか?json pythonの解析

{ 
     "pk": 1, 
     "fa": "cc.ee", 
     "fb": { 
      "fc": "", 
      "fd_id": "12345", 
     } 
    }, 


#!/usr/bin/env python 
import json,urllib 
json_data=open("my.json") 
data = json.load(json_data) 
for entry in data: 
    json.dumps(entry) 
json_data.close() 
exit 
+0

[JSON Validator](http://jsonlint.com/)には、JSONに問題があることに注意してください。最後の2つのカンマを削除したかどうかを検証します(Pabloの回答の 'json_string'を参照)。 –

答えて

17

JSONオブジェクトは辞書のように動作します。

json_string = """ 
{ 
    "pk": 1, 
    "fa": "cc.ee", 
    "fb": { 
     "fc": "", 
     "fd_id": "12345" 
    } 
}""" 

import json 
data = json.loads(json_string) 
if data["fa"] == "cc.ee": 
    data["fb"]["new_key"] = "cc.ee was present!" 

print json.dumps(data) 
+3

'json'モジュールについてのもう一つのこと:' json'がそうでない場合、以前のバージョンの 'simplejson'は利用可能でなければなりません。 'importjrror'が捕まえられたときに' import json'という名前で 'import simplejson as json'を実行することで、古いバージョンとの互換性を得ることができ、パフォーマンスの利益から利益を得ることができます(' simplejson'はより頻繁に更新されると言われています)。両方のモジュールは同じインターフェースを持っているので、同じ方法で使用されます。 [この質問](http://stackoverflow.com/questions/712791/json-and-simplejson-module-differences-in-python)の詳細を参照してください。 – Tadeck