如何在Python中判断日期是否为周日并生成对应数据库记录
问题修正:判断日期是否为周日并创建数据库记录
原代码的核心问题是:date_list中的元素是字符串类型,无法直接调用weekday()方法,运行时会抛出AttributeError。需要先将字符串日期转换为datetime.date对象,再进行日期判断。
修正后的代码
from datetime import datetime date_list = ['2023-03-17', '2023-03-18', '2023-03-19', '2023-03-20'] for date_str in date_list: # 把字符串日期转为datetime.date对象,格式匹配'YYYY-MM-DD' date_obj = datetime.strptime(date_str, '%Y-%m-%d').date() # 判断是否为周日:weekday()返回6代表周日(周一为0,周六为5) if date_obj.weekday() == 6: num_of_people = '5' capacity = 0 else: num_of_people = '15' capacity = 10 # 创建ProductionCapacity记录 ProductionCapacity.objects.create( num_of_people=num_of_people, date=date_obj, capacity=capacity )
补充说明
- 如果觉得
weekday()的返回值不够直观,也可以用isoweekday()方法:它返回1代表周一,7代表周日,判断条件可改为date_obj.isoweekday() ==7,逻辑完全一致。 - 原代码中的判断
date.weekday() >5其实逻辑是对的(仅周日会满足),但因为操作对象是字符串而非日期对象才导致错误。
内容的提问来源于stack exchange,提问作者Harika
相关产品推荐
相关产品推荐

