# 即時台灣水庫蓄水量
###### tags: `自己玩`
將資料抓下來
```python=
import matplotlib.pyplot as plt
import urllib.request as ur
url = 'https://www.taiwanstat.com/waters/latest'
u = ur.urlopen(url)
w = u.read()
c = w.decode('utf-8')
```
c的結果
```
'[{"寶山第二水庫":{"baseAvailable":"3147.18","id":"reservoir4","updateAt":"2021-08-07(15)","volumn":"3170.61","percentage":100,"daliyOverflow":"26.08","daliyInflow":"32.08","daliyNetflow":-6,"name":"寶山第二水庫"},"日月潭水庫":{"baseAvailable":"12806.03","id":"reservoir9","u
pdateAt":"2021-08-07(7時)","volumn":"12162.92","percentage":94.9,"daliyOverflow":"348.88","daliyInflow":"500.08","daliyNetflow":-151.2,"name":"日月潭水庫"},"南化水庫":{"baseAvailable":"9097.90","id":"reservoir16","updateAt":"2021-08-07(7時)","volumn":"9829.55","percentage":100,"daliyOverflow":"1,017.40","daliyInflow":"1,241.90","dal
iyNetflow":-224.5000000000001,"name":"南化水庫"},"翡翠水庫":{"baseAvailable":"33550.50","id":"reservoir1","updateAt":"2021-08-07(15時)","volumn":"30158.46","percentage":89.8,"daliyOverflow":"684.00","daliyInflow":"360.00","daliyNetflow":324,"name":"翡翠水庫"},"湖山水庫":
{"name":"湖山水庫","id":"reservoir19","updateAt":"2021-08-07(16時)","volumn":"5110.15","percentage":100,"daliyOverflow":"24.82","daliyInflow":"38.36","daliyNetflow":-13.54,"baseAvailable":"5086.51"},"德基水庫":{"baseAvailable":"18642.00","id":"reservoir7","updateAt":"2021-08-07(7
時)","volumn":"12340.66","percentage":66.2,"daliyOverflow":"0.00","daliyInflow":"227.20","daliyNetflow":-227.2,"name":"德基水庫"},"烏山頭水庫":{"baseAvailable":"7857.90","id":"reservoir15","updateAt":"2021-08-07(16時)","volumn":"8332.00","percentage":100,"daliyOverflow":"270.60","daliyInflow":"715.60","daliyNe
tflow":-445,"name":"烏山頭水庫"},"石門水庫":{"baseAvailable":"20266.10","id":"reservoir2","updateAt":"2021-08-07(16時)","volumn":"19866.37","percentage":98,"daliyOverflow":"841.16","daliyInflow":"1,145.89","daliyNetflow":-304.73000000000013,"name":"石門水庫"},"蘭潭水庫":
{"baseAvailable":"923.97","id":"reservoir21","updateAt":"2021-08-07(7時)","volumn":"913.46","percentage":98.8,"daliyOverflow":"10.87","daliyInflow":"26.95","daliyNetflow":-16.08,"name":"蘭潭水庫"},"霧社水庫":{"baseAvailable":"3752.88","id":"reservoir10","updateAt":"2021-08-07(7
時)","volumn":"2281.82","percentage":60.8,"daliyOverflow":"380.16","daliyInflow":"309.63","daliyNetflow":70.53000000000003,"name":"霧社水庫"},"曾文水庫":{"baseAvailable":"50956.00","id":"reservoir14","updateAt":"2021-08-07(16時)","volumn":"45603.00","percentage":89.4,"daliyOverflow":"7,231.20","daliyInflow":"7,250.20","daliyNetflow":-19,"name":"曾文水庫"},"白河水庫":
{"baseAvailable":"1173.45","id":"reservoir13","updateAt":"2021-08-07(16時)","volumn":"1110.00","percentage":94.5,"daliyOverflow":"321.12","daliyInflow":"426.12","daliyNetflow":-105,"name":"白河水庫"},"新山水庫":{"baseAvailable":"1002.00","id":"reservoir0","updateAt":"2021-08-07(8時)","volumn":"834.72","percentage":83.3,"daliyOverflow":"0.00","daliyInflow":"2.88","daliyNetflow":-2.88,"name":"新山水庫"},"仁義潭水庫":
{"baseAvailable":"2482.25","id":"reservoir12","updateAt":"2021-08-07(7時)","volumn":"2482.25","percentage":100,"daliyOverflow":"36.03","daliyInflow":"63.66","daliyNetflow":-27.629999999999995,"name":"仁義潭水庫"},"寶山水庫":{"baseAvailable":"503.50","id":"reservoir20","updateAt":"2021-08-07(7時)","volumn":"466.28","percentage":92.6,"daliyOverflow":"6.54","daliyInflow":"9.87","daliyNetflo
w":-3.329999999999999,"name":"寶山水庫"},"永和山水庫":{"baseAvailable":"2998.94","id":"reservoir3","updateAt":"2021-08-07(16時)","volumn":"2928.81","percentage":97.66150706582992,"daliyOverflow":"--","daliyInflow":"--","daliyNetflow":"--","name":"永和山水庫"},"阿公店水庫":{"baseAvailable":"1525.89","id":"reservoir17","u
pdateAt":"2021-08-07(16時)","volumn":"263.00","percentage":17.2,"daliyOverflow":"157.64","daliyInflow":"174.24","daliyNetflow":-16.600000000000023,"name":"阿公店水庫"},"明德水庫":{"baseAvailable":"1222.05","id":"reservoir5","updateAt":"2021-08-07(16時)","volumn":"1080.10","percentage":88.38427232928275,"daliyOverflow":"--","daliyInflow":"--","daliyNetflow":"--","name":"明德水庫"},"鯉魚潭水庫":{"baseAvailable":"11446.01","id":"reservoir6","updateAt":"2021-08-07(15時)","volumn":"11635.64","percentage":100,"daliyOverflow":"276.11","daliyInflow":"342.23","daliyNetflow":-66.12,"name":"鯉魚潭水庫"},"石岡壩":{"baseAvailable":"149.31","id":"reservoir8","updateAt":"2021-08-07(16時)","volumn":"46.76","percentage":31.3,"daliyOverflow":"1,255.90","daliyInflow":"1,264.10","daliyNetflow":-8.199999999999818,"name":"石岡壩"},"牡丹水庫":{"baseAvailable":"2651.32","id":"reservoir18","updateAt":"2021-08-07(16時)","volumn":"1848.01","percentage":69.7,"daliyOverflow":"579.02","daliyInflow":"430.91","daliyNetflow":148.10999999999996,"name":"牡丹水庫"}}]'
```
抓取水庫名稱及蓄水量
```python=
r = 0
d = 0
p = 0
k = 1
q = []
z = []
for i in range(c.count('水庫')):
a = c.find('水庫',d)
d = a+2
if i % 2 == 0 :#因為水庫名稱有重複 要加一個刪一個
p = c.find('percentage',r)
print(c[a-4:a+2].strip(',"')+":",c[p:p+15].strip('.')+'%')
r = p+15
q.append(c[a-4:a+2].strip(',"'))#剔除不要的,":之類的
```
輸出結果
```
寶山第二水庫: percentage":100%
日月潭水庫: percentage":94%
南化水庫: percentage":100%
翡翠水庫: percentage":89%
湖山水庫: percentage":100%
德基水庫: percentage":66%
烏山頭水庫: percentage":100%
石門水庫: percentage":98,%
蘭潭水庫: percentage":98%
霧社水庫: percentage":60%
曾文水庫: percentage":89%
白河水庫: percentage":94%
新山水庫: percentage":83%
仁義潭水庫: percentage":100%
寶山水庫: percentage":92%
永和山水庫: percentage":97%
阿公店水庫: percentage":17%
明德水庫: percentage":88%
鯉魚潭水庫: percentage":100%
牡丹水庫: percentage":31%
```
話長條圖
```python=
o = list(map(float,z))#因為z[i]type為str 要改成float
plt.figure(figsize=(70,30))#表格大小
plt.rcParams['font.family']='DFKai-SB'#顯示中文 只有window10有
plt.tick_params(axis='x', labelsize=30)
plt.tick_params(axis='y', labelsize=30)
for i in range(0,len(q)):
if int(o[i]) < 50:#續水輛低於50寫紅色
plt.text(i-0.1,float(z[i])+2 , z[i]+'%',fontsize=30,color = 'red')
if int(o[i])>=50:
plt.text(i-0.1,float(z[i])+2 , z[i]+'%',fontsize=30,color = 'blue')
plt.bar(q,o,color = 'cornflowerblue')
```
