You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python数据字典中访问DailyPlannerRequest值?

问题解决思路

核心原因

你报错'datetime.date' object has no attribute 'DailyPlannerRequest'的本质是:当前代码里的request变量是datetime.date类型的对象,不是你预期的字典或自定义请求对象——大概率是循环字典时,你把字典里的日期值赋值给了request变量,覆盖了原本的数据源,导致后续用点语法访问DailyPlannerRequest时出错。

具体修复步骤

  1. 确认变量类型与命名
    先打印变量的类型和内容,搞清楚你手里的数据源到底是什么:

    print(type(request))
    print(request)
    

    另外,避免用request这种容易和Web框架请求对象重名的变量,建议把待比较的字典命名为planner_dict或其他明确名称,避免变量覆盖。

  2. 用字典键访问替代点语法
    如果你的目标数据存在字典里,必须用字典的键访问方式字典名['键名'],而不是对象的点语法:

    # 假设待比较的字典是planner_dict
    if planner_dict['day'] == day and event.daily_planner_request_name == planner_dict['DailyPlannerRequest']:
        # 执行你的匹配逻辑
        pass
    
  3. 适配QuerySet与字典值的比较
    针对QuerySet和字典值的对比场景,这里给你一个清晰的示例:

    # 示例:待比较的字典数据
    planner_data = {
        'day': datetime.date(2024, 5, 20),
        'DailyPlannerRequest': '项目评审会'
    }
    
    # 遍历Event模型的QuerySet
    for event in Event.objects.filter(day=planner_data['day']):
        # 直接用字典键取值和模型字段比较
        if event.daily_planner_request_name == planner_data['DailyPlannerRequest']:
            print(f"匹配到事件:{event.name}")
    

    也可以直接在QuerySet过滤时就结合字典值,减少循环内的判断:

    matched_events = Event.objects.filter(
        day=planner_data['day'],
        daily_planner_request_name=planner_data['DailyPlannerRequest']
    )
    

内容的提问来源于stack exchange,提问作者Steve Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:24:07