如何从tropycal生成的季节字典中提取各季总风暴数?
解决tropycal获取气旋季总风暴数的问题
你报错的核心原因是:ibtracs_all.get_season(year)返回的不是普通字典,而是tropycal库的Season类实例,不能直接用字典键值对的方式访问属性。正确的获取方式如下:
方法一:通过Season对象的season_summary属性提取
Season实例的season_summary是一个内置字典,包含该季所有汇总数据,你需要先通过对象属性访问这个字典,再提取总风暴数:
# 遍历所有年份,获取对应季的总风暴数 for year in range(1970, 2020): season_obj = season[year] total_storms = season_obj.season_summary['total_storms'] print(f"{year} 年总风暴数:{total_storms}")
方法二:直接访问Season对象的封装属性
tropycal的Season类已经把总风暴数封装成了直接可调用的属性,无需从summary字典中提取:
for year in range(1970, 2020): total_storms = season[year].total_storms print(f"{year} 年总风暴数:{total_storms}")
排查小技巧
如果不确定属性名是否正确,可以用以下代码快速验证:
# 取任意年份的Season对象作为样本 sample_season = season[1970] # 打印该对象所有可用属性和方法 print(dir(sample_season)) # 打印完整的season_summary字典,确认键名细节 print(sample_season.season_summary)
内容的提问来源于stack exchange,提问作者MateaMar
相关产品推荐
相关产品推荐

