Python holidays 库



什么是 Python 中的 holidays 库?

Python 的 **holidays** 库用于确定特定日期在特定国家/地区是否为节假日。**holidays** 库提供了一种简单的方法来检查特定日期是否为节假日,列出一年中的节假日,甚至获取给定日期的节假日名称。

holidays 库的使用

holidays 库可以应用于广泛的用途 -

  • 此库可用于创建工作日与节假日安排。
  • 它可用于设计非节假日日历。
  • 它可用于围绕节假日重新安排截止日期。
  • 它可用于创建包含节假日的报告。
  • 您可以探索特定国家的节假日。
  • 在处理多个区域时,它可用于合并一组国家节假日项目。
  • 它有助于创建基于项目的节假日列表以及您自定义的节假日。

holidays 库的安装

要开始使用 holidays 库,您需要首先使用 PIP 安装它,以下是安装它的命令语法 -

pip install holidays

导入 holidays 库

安装库后,您需要在 Python 代码中导入它。以下是导入 **holidays** 库的导入语句 -

import holidays

指定国家/地区

要使用特定国家的节假日,请创建 holidays 库的实例。使用以下语句为特定国家/地区创建 holidays 库的实例 -

uk_holidays = holidays.UnitedKingdom()

检查日期是否为节假日

您可以使用 holidays 库来检查给定日期在特定国家/地区是否为节假日。

示例

在此示例中,我们正在检查一些日期在英国是否为节假日。

# Importing holidays library
import holidays
# Specifying country
uk_holidays = holidays.UnitedKingdom() 
# Checking dates
print('01-01-2018' in uk_holidays) 
print('02-01-2018' in uk_holidays)

输出

True
False

获取节假日名称

要根据给定日期获取特定节假日的名称,请使用 **.get()** 方法以及对象名称,并将日期作为参数传递。

示例

在此示例中,我们正在获取指定日期的节假日名称 -

# Importing holidays library
import holidays
# Specifying country
uk_holidays = holidays.UnitedKingdom() 
# Getting Holiday Name
print(uk_holidays.get('01-01-2018'))
print(uk_holidays.get('02-01-2018'))

输出

New Year's Day
None

列出一年中的所有节假日

您还可以打印特定国家/地区的所有节假日。要打印特定年份的所有节假日,请使用 **.items()** 方法迭代循环。

示例

在此示例中,我们正在打印 2018 年英国的节假日日期和名称。

# Importing holidays library
import holidays
# Specifying country
uk_holidays = holidays.UnitedKingdom() 
# Listing All Holidays for a Year 
for ptr in holidays.UnitedKingdom(years=[2018]).items(): 
   print(ptr)

输出

(datetime.date(2018, 1, 1), "New Year's Day") 
(datetime.date(2018, 1, 2), 'New Year Holiday [Scotland]') 
(datetime.date(2018, 3, 17), "St. Patrick's Day [Northern Ireland]") 
... 

组合国家/地区

您可以组合来自多个国家/地区的节假日列表。

示例

以下示例演示了如何组合国家/地区 -

# Importing holidays library
import holidays
north_america = holidays.CA() + holidays.US() + holidays.MX() 
print(north_america.country) 
print(north_america.get('07-01-2018')) 
print(north_america.get('07-04-2018'))

输出

['CA', 'US', 'MX']
Canada Day
Independence Day

创建自定义节假日

通过使用 holidays 库,您可以创建自定义节假日列表。

示例

在此示例中,我们正在创建自定义节假日列表 -

# Importing holidays library
import holidays
import datetime
in_holidays = holidays.HolidayBase() 
# Add a single date 
in_holidays.append('26-01-2019')   
# Add a date with description 
in_holidays.append({'26-01-2019': 'Republic Day India'}) 
# Add multiple dates 
in_holidays.append(['02-10-2018', '15-08-2018'])   
# Add a date object 
in_holidays.append(datetime.date(2018, 12, 25)) 
print('26-01-2019' in in_holidays)
print(in_holidays.get('26-01-2019'))

输出

True
Holiday; Republic Day India

holidays 库的常用方法

holidays 库的一些常用方法如下 -

方法 描述
get(key, default=None) 此方法返回给定日期的节假日名称。
get_list(key) 此方法与 get 相同,但它返回列表而不是逗号分隔的字符串
pop(key, default=None) 此方法删除并返回给定日期的节假日。
python_reference.htm
广告