原始數據來自溫州颱風網,爲2017年27個颱風的詳細資料,需要做的是將27個颱風信息寫入一個csv表格中,另外將它們的點位觀測信息分開寫成27個csv,具體可參考附件文件(文末有百度雲鏈接)中的output文件夾。
參考代碼如下:
import json
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
typhon27=[] # 把27個颱風數據讀入該列表,訪問方式爲:typhoon[i]
points=[] # 把27個颱風的points都存入其中 ,去除 forecast
for i in range(1,28):
path = r'2017\2017'+str(i).zfill(2)+'.json'
with open(path, 'r') as f:
data = json.load(f)[0]
typhon27.append(data)
typhonindex=['ename', 'land', 'name', 'tfbh', 'points', 'is_current', 'end_time', 'begin_time']
dictout1=[]
for data in typhon27:
po=data['points'] # 存了很多時次的數據
for j in po:
del j['forecast']
points.append(po) # points 存入27個颱風的信息
# data_copy = data.copy() #copy 保存
del data['points']
dictout1.append(data)
# 將27個颱風的基本信息寫成一個csv文件:
dictout1=pd.DataFrame(dictout1) #dictout1 是一個存颱風信息字典的 列表[{},{},{}...],可以直接 -> DataFrame -> csv
dictout1.to_csv('typhon.csv')
# 將27個颱風的點位信息分別寫成csv文件:
for i,a in enumerate(points,1):
aout=pd.DataFrame(a)
aout.to_csv('t'+str(i)+'.csv')
數據及輸出文件:
鏈接:https://pan.baidu.com/s/1smRMc6D 密碼:pus2