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']

以上です

この記事が気に入ったらサポートをしてみませんか?