python利用akshare和chinesecalendar判断是否为工作日是则保存数据(并贴上时间戳)

在之前的博客中有给小伙伴们介绍了下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

觉得本篇博客对你有帮助的可以给作者小小支持一下~你的鼓励就是我前行的莫大动力!

猜你喜欢

转载自blog.csdn.net/m0_50481455/article/details/109533842