原始数据来自温州台风网,为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