Python实现借助聚合数据API接口生成某一年的节假日对照表
最近有需要某一年的日期与节假日,周六日的对照表,故在此记录一下实现思路和代码。主要用到了pandas的日期解析函数和聚合数据提供的万年历解析API,代码并不复杂。
万年历API申请地址:https://www.juhe.cn/docs/api/id/177
import urllib
import urllib.request as request
import urllib.error as error
import jsondef get_holiday(key, date, query_method='day'):"""key: 申请的keydate: str类型,查询日期,根据不同的查询方式,输入的日期格式也不同- day: 格式为YYYY-MM-DD,如月份和日期小于10,则取个位,如:2021-1-1- month: 格式为YYYY-MM,如月份和日期小于10,则取个位,如:2021-1- year: 格式为YYYY,如:2021query_method: str类型,查询方式: day,month,year"""params_dict = {"key": key,"date": "2021-11-11"}if not key:key = "输入你的key"if query_method == "day":params_dict = {"key": key,"date": date}elif query_method == "month":params_dict = {"key": key, "year-month": date}elif query_method == "year":params_dict = {"key": key,"year": date}else:print("Please input the correct match params format, your input are:{}{}".format(date, query_method))api_url = f'http://v.juhe.cn/calendar/{query_method}'params = urllib.parse.urlencode(params_dict)try:req = request.Request(api_url, params.encode())response = request.urlopen(req)content = response.read()result = json.loads(content)except error.HTTPError as err:print(err)except error.URLError as err:# 其他异常print(err)return result
def generate_csv(year, start_month, end_month):start_date = str(year) + '0101'end_date = str(year) + '1231'weekday_df = pd.DataFrame()date_range = pd.date_range(start_date, end_date, freq = '1D')# 获取星期几weekday_df['date'] = date_rangeweekday_df['day_of_week'] = weekday_df['date'].dt.dayofweek + 1holiday_array = get_year_month_holiday(year, start_month, end_month)holiday_df = pd.DataFrame()for i in range(len(holiday_array)):each_day = holiday_array[i]['list']each_df = pd.DataFrame(each_day)holiday_df = holiday_df.append(each_df)# 去重holiday_df.drop_duplicates(inplace=True)holiday_df.reset_index(drop=True, inplace=True)holiday_df['date'] = pd.to_datetime(holiday_df['date'])# 合并数据df_merge = pd.merge(weekday_df, holiday_df, how='left', on='date')df_merge.fillna(0, inplace=True)df_merge['status'] = df_merge['status'].astype('int')# 是否节假日judge = np.where(df_merge['day_of_week'] < 6, 0, 1) + df_merge['status']judge = np.where((judge == 2) | (judge == 1), 'Y', 'N')df_merge['is_holiday'] = judgereturn df_merge
结果
参考:
- https://www.jianshu.com/p/cdbdffcb8e30
- https://www.sdk.cn/details/5Oo4L8VEexlEbVMrWv?s=api
Python实现借助聚合数据API接口生成某一年的节假日对照表相关推荐
- Java: 聚合数据API接口调用城市天气预报
Java: 聚合数据API接口调用城市天气预报 点击进入[数据聚合_数据接口调用_开发者数据API开放平台](官网) 在pom文件中,加入依赖 <!--返回json数据--><dep ...
- ajax查询全国天气预报,使用聚合数据api接口
空值情况 苏州 界面如上,可以根据自己需求再添加一些内容. 功能需求:根据城市名称查询该城市的天气情况,输入空值的时候默认查询北京天气 这个是我使用聚合数据提供的免费20次请求全国天气预报API,注册 ...
- python 易盛行情_易盛信息9.0外盘期货行情数据API接口公共授权开发包例子代码...
易盛信息9.0外盘期货行情数据API接口公共授权开发包例子代码 怎么才能获取到外盘期货行情数据API接口呢?不少朋友就会考虑到易盛9.0行情API接口,本身易盛就是一个软件提供商,提供行情API接口也 ...
- 调用聚合数据API实现手机号码归属地查询
调用聚合数据API实现手机号码归属地查询 1.作者介绍 2.相关介绍 2.1 什么是聚合数据? 2.2 API介绍 2.3 手机号码归属地 3.实验过程 3.1如何调用聚合数据API 3.2代码实现 ...
- 使用聚合数据API查询快递数据-短信验证码-企业核名
有位朋友让我给他新开的网站帮忙做几个小功能,如下: 输入快递公司.快递单号,查询出这个快件的所有动态(从哪里出发,到了哪里) 在注册.登录等场景下的手机验证码(要求有一定的防刷策略) 通过输入公司名的 ...
- 通过聚合数据API实现快递数据查询-短信验证码-企业核名
有位朋友让我给他新开的网站帮忙做几个小功能,如下: 输入快递公司.快递单号,查询出这个快件的所有动态(从哪里出发,到了哪里) 在注册.登录等场景下的手机验证码(要求有一定的防刷策略) 通过输入公司名的 ...
- 历年奥运比赛数据 API 接口
历年奥运比赛数据 API 接口 包含运动员以及奖牌数据,历年所有数据 / 多种查询条件. 1. 产品功能 自奥运举办以来历年的所有数据: 27 万全量数据: 多种查询条件便于多维度分析: 数据持续更新 ...
- A股历史行情数据 API 接口
A股历史行情数据 API 接口 所有A股历史交易行情数据,全量历史交易 / 包含前后复权数据. 1. 产品功能 支持所有 A 股全量历史(天)交易查询: 包含上交所和深交所所有股票数据: 每日 A 股 ...
- 科创板历史行情数据 API 接口
科创板历史行情数据 API 接口 全量科创板历史行情,全量历史数据 / 支持代码筛选. 1. 产品功能 支持所有科创板历史交易数据查询: 包含科创板交易多项指标数据: 毫秒级查询性能: 全接口支持 H ...
- 基于Python脚本和聚合数据实现手机号码归属地信息查询
聚合数据简介 聚合数据是一个为智能手机开发者,网站站长,移动设备开发人员及图商提供原始数据API服务的综合性云数据平台.包含手机聚合,网站聚合,LBS聚合三部分,其功能类似于Google APIS和百 ...
最新文章
- 0x02 mysql 表格相关操作
- c语言字符串转64位哈希值,对字符串进行hash处理用什么方法好???
- python【力扣LeetCode算法题库】20- 有效的括号(辅助栈)
- [Scheduled Timer]第三回:事件存储(EventStorage)
- jzoj C组 2017.1.19 比赛
- ios15之取消UITabbleViewCell的高亮效果
- 037-PHP如何返回闭包函数实例
- 图解浏览器缓存,教你提高用户体验
- ProPublica Illinois如何每天使用GNU Make加载1.4GB数据
- npm的安装和更新---npm工作笔记002
- NET EF 连接Oracle 的配置方法记录
- no system images installed for this target这个问题如何解决?
- golang 语言中关于err的函数的封装使用
- eclipse写代码比jcreator好用多了
- Android热修复Sophix详解
- Yii2汉字转拼音类
- jQuery中的siblings()
- 网页美学设计原则(上)
- 虚拟码号的两种形式你了解多少!
- el-upload回显细节--没有图片数据返回的时候每点击一次添加多了一个空白图片
热门文章
- PS更改图片的像素大小和格式
- 长微博生成器html,微信文章怎么搬到微博中?微信内容一键生成长微博的技巧
- mysql grant教程_MySQL的Grant命令详解
- ps计算机图片素材,电脑ps怎么把图片变清晰(手把手教你修图)
- Android jetpack DataStore 1.0.0-rc02最新版从SharedPreferences迁移到Preferences DataStore
- BaseRecyclerViewAdapterHelper开源项目之BaseSectionQuickAdapter 实现Expandable And collapse效果的源码学习...
- 浅聊使用PHP实现微信公众号登录
- android 翻译功能开发,Android使用有道翻译API实现在线翻译功能
- html 手机端可以选择复制粘贴,js移动端实现网站内容复制粘贴功能
- jenkins停止僵尸作业Click here to forcibly terminate running steps