2017-02-05 16 views
0

JSONオブジェクトのnull値をサブスキーマに置き換えたいとします。私はnullオブジェクトをJSONファイルのサブママに置き換えますか?

以下のコードを使用して
"format": { 
    "dateFormat": "dayShortMonthYear" 
} 

"format": null 

を変更したい

、私は(私が正しいとは思わないもの)"format":ために、以下の結果が得られます。

"format": "{\"dateFormat\": \"dayShortMonthYear\"}", 

これは私のコードです。どんな助けも大いに評価されます。

import json 

data_from_api = """{ 
"response_code": 200, 
    "train_number": "12229", 
    "position": "at Source", 
    "route": [ 
    { 
     "no": 1, 
     "has_arrived": false, 
     "has_departed": false, 
     "schdep": "22:15", 
     "actarr": "00:00", 
     "distance": "0", 
     "day": 0, 
     "format": null 
    }, 
    { 
     "actdep": "23:40", 
     "scharr": "23:38", 
     "schdep": "23:40", 
     "actarr": "23:38", 
     "no": 2, 
     "has_departed": false, 
     "scharr_date": "15 Nov 2015", 
     "has_arrived": false, 
     "station": "HRI", 
     "distance": "101", 
     "actarr_date": "15 Nov 2015", 
     "day": 0, 
     "format": { 
       "dateFormat": "dayShortMonthYear" 
     } 
    } 
    ] 
}""" 

info = json.loads(data_from_api) 
for route in info["route"]: 
    if route["format"] is None: 
     print json.dumps(route, indent=4, sort_keys=True) 
     route["format"] = '{"dateFormat": "dayShortMonthYear"}' 
     print json.dumps(route, indent=4, sort_keys=True) 
+1

これは正しい結果です。明示的に*文字列*を挿入しています。実際のオブジェクトにするには、 'route [" format "] = {'dateFormat': 'dayShortMonthYear'}'を実行する必要があります。 – jonrsharpe

+0

ブリリアント。ここでの修正をありがとう(瞬時に)ありがとう。 – Genspec

答えて

1

あなたは、文字列に書式を割り当てる だけ引用符を削除し、それが動作するはずです。

route["format"] = {"dateFormat": "dayShortMonthYear"} 
関連する問題