在之前的博客中有给小伙伴们介绍了下akshare这个第三方模块~
上边的接口挺好用的 但是有的接口只提供一天的数据!那该怎么办(下边用郑商所的棉花期权举例子)?
当你试图循环一年的365天 然而又有的是休息日 借用akshare返回会报错!
嘻嘻 这个时候 就要用到chinesecalendar这个第三方模块啦!
首先第一步当然是安装啦!
pip install chinesecalendar
然后就开始愉快的写代码吧!
import datetime
import akshare as ak
import pandas as pd
from chinese_calendar import is_workday
#循环十二个月,如果偶尔报错需手动修改
for i in range(1,13):
#循环一个月 这里只取30天
for s in range(1,31):
#二月份只有28或者29天哦
if i ==2 and s>=28:
pass
else:
# 这里取2020年的数据
data = datetime.datetime(2020, i, s)
# 因为下边调用接口时候,trade_date=只能接字符串 所以将data转为字符串格式
ttt = str(data)
# print(ttt)
# print(type(ttt))
ttt.split(" ")
# 因为data除了日期后边还有时间 不需要取时间 所以分割一下
data1 = ttt.split(" ")[0]
# print(ttt.split(" ")[0])
# 如果是工作日
if is_workday(data):
print("%s是工作日"%data)
# 这里取郑商所的棉花期权做例子
option_df = ak.get_czce_option_daily(trade_date=data1, symbol="棉花期权")
a = option_df
print(a)
# 给表格命名
file_name = data1 + ".xlsx"
writer = pd.ExcelWriter(file_name, encoding="utf-8-sig")
a.to_excel(writer, "棉花期权")
# 保存表格内容
writer.save()
print("数据保存成功")
else:
print("是休息日")
这里我参考了别人的博客 所以知道chinesecalendar这个库的用法
参考博客如下:
https://blog.csdn.net/shykevin/article/details/108017301?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.edu_weight
觉得本篇博客对你有帮助的可以给作者小小支持一下~你的鼓励就是我前行的莫大动力!