Pythonで天気予報（明後日まで・週間）JSONファイルを読んでみる

# 目的
[天気概況（週間）](https://www.jma.go.jp/bosai/forecast/data/overview_week/130000.json)や[天気概況（明後日まで）](https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json)の２つは単純な構造だから
[C#で天気予報JSONファイルを読んでみる](https://qiita.com/tabizou/items/67946c413702e3ff0016)のようにクラスを定義してDeserializeができた
[天気予報（明後日まで・週間）](https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json)はめんどくさそうな構造なのでまずはPythonで試してみた
※C#で綺麗に書けるんだろうか？(いやPythonでもそうなんだけど)
##現時点での構造
lst[0]['timeSeries'][0]['areas']
lst[0]['timeSeries'][1]['areas']
lst[0]['timeSeries'][2]['areas']
lst[1]['timeSeries'][0]['areas']
lst[1]['timeSeries'][1]['areas']
lst[1]['tempAverage']['areas']
lst[1]['precipAverage']['areas']
の様に大きく７個のセクションがある
※それ以下は実際のコード見たほうが分かりやすい気がする
lst[0]['timeSeries'][0|1]['areas']、lst[1]['timeSeries'][0|1|2]['areas']はDeserialize可能なクラスは定義できるのか？(今の自分では不明)

## サンプルコード
<pre>
PS C:\> python -V
Python 3.9.5
</pre>
以下上記で述べた７個を順次ばらしていく
※めんどくさそうなJsonのファイルはどうやってばらしていくのが良いのだろうか・・・

```python
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8

import urllib.request
import json

# 天気予報（明後日まで・週間）
url = 'https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json'

req = urllib.request.Request(url)

with urllib.request.urlopen(req) as res:
    lst = json.load(res)

# print(lst[0]['timeSeries'][0])
print(' ')
for item in lst[0]['timeSeries'][0]['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(' ')
    index =  0
    while index < len(item['weatherCodes']):
        print(lst[0]['timeSeries'][0]['timeDefines'][index])
        print(item['weatherCodes'][index]+':'+item['weathers'][index]+':'+item['winds'][index]+':'+item['waves'][index] )
        print(' ')
        index += 1

# print(lst[0]['timeSeries'][1])
print(' ')
for item in lst[0]['timeSeries'][1]['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(lst[0]['timeSeries'][1]['timeDefines'])
    print(item['pops'])
    print(' ')
    index =  0
    while index < len(item['pops']):
        print(lst[0]['timeSeries'][1]['timeDefines'][index])
        print(item['pops'][index])
        print(' ')
        index += 1 

# print(lst[0]['timeSeries'][2]) 
print(' ')  
for item in lst[0]['timeSeries'][2]['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(' ')
    index =  0
    print(len(item['temps']))
    while index < len(item['temps']):    
        print(lst[0]['timeSeries'][2]['timeDefines'][index])
        print(item['temps'][index])
        index += 1 
        print(' ')

# print(lst[1]['timeSeries'][0]['areas'])      
print(' ')
for item in lst[1]['timeSeries'][0]['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(' ')
    index =  0
    print(item['weatherCodes'])
    print(item['pops'])
    print(item['reliabilities'])
    while index < len(item['weatherCodes']):    
        print(item['weatherCodes'][index])
        print(item['pops'][index])
        print(item['reliabilities'][index])
        index += 1 
        print(' ')

# print(lst[1]['timeSeries'][1]['areas']) 
print(' ')
for item in lst[1]['timeSeries'][1]['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(' ')
    index =  0
    while index < len(item['tempsMin']):
        print(lst[1]['timeSeries'][1]['timeDefines'][index])  
        print(item['tempsMin'][index])
        print(item['tempsMinUpper'][index])
        print(item['tempsMinLower'][index])
        print(item['tempsMax'][index])
        print(item['tempsMaxUpper'][index])
        print(item['tempsMaxLower'][index])
        index += 1 
        print(' ')

# print(lst[1]['tempAverage']['areas'])
print(' ')
for item in lst[1]['tempAverage']['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(item['min'])
    print(item['max'])
    print(' ')

# print(lst[1]['precipAverage']['areas'])
print(' ')
for item in lst[1]['precipAverage']['areas']:
    print(item['area']['name'])
    print(item['area']['code'])
    print(item['min'])
    print(item['max'])
    print(' ')
```

# 参考にしたのは以下のサイト
[【Python入門】JSON形式データの扱い方](https://qiita.com/Morio/items/7538a939cc441367070d)
[Python の HTTP クライアントは urllib.request で十分](https://qiita.com/hoto17296/items/8fcf55cc6cd823a18217)
[［Python入門］リストの基本](https://www.atmarkit.co.jp/ait/articles/1905/31/news015.html)
[Pythonで辞書のキーや値を取得する方法を現役エンジニアが解説【初心者向け】](https://techacademy.jp/magazine/22290)