Pythonで入れ子のJSONデータの読み込み
下記の様なJSONデータを読み込むPythonのコード
{'message': None, 'result':
{'prefCode': '1', '
prefName': '北海道',
'cityCode': '01100',
'cityName': '札幌市',
'matter': 1,
'years': [
{'year': '2015', 'data': [
{'code': '1', 'label': '総務費', 'value': 6.1},
{'code': '2', 'label': '民生費', 'value': 44.19},
{'code': '3', 'label': '衛生費', 'value': 5.2},
{'code': '4', 'label': '農林水産業費', 'value': 0.07},
{'code': '5', 'label': '商工費', 'value': 8.98},
{'code': '6', 'label': '土木費', 'value': 13.9},
{'code': '7', 'label': '警察費・消防費', 'value': 2},
{'code': '8', 'label': '教育費', 'value': 8.58},
{'code': '9', 'label': '公債費', 'value': 9.41},
{'code': '10', 'label': '労務費', 'value': 0.05},
{'code': '11', 'label': 'その他', 'value': 1.52}
]}]}}
Python3でのコードです。
data変数に上記のJSONデータが入っています。
入れ子毎にjson.dumpsとjson.loadsを繰り返せば読み込めました。
import json
d = json.loads(data.decode())
k = d['result']
l = json.dumps(k)
m = json.loads(l)
d = m['years']
for k in d:
l = k['data']
for m in l:
n = json.dumps(m)
o = json.loads(n)
p[o['label']] = o['value']
以上です