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

职责为True的员工未被正确添加到筛选结果列表的问题求助

职责为True的员工未被正确添加到筛选结果列表的问题求助

大家好,我现在遇到一个头疼的问题:我写了个函数想要筛选出Responsibilities(职责)为True的员工,但运行后发现明明日志里已经检测到符合条件的记录,结果列表却始终是空的,符合要求的员工根本没被加进去。

先贴出我的相关代码:

def employees_by_responsibilities(employees: list[schemas.Employee], responsibilities: bool = True, by_date: datetime.date | None = None) -> list[schemas.Employee]:

    result: list[schemas.Employee] = []
    print(f"List:{result}")
    fact_employment = []
    for emp in employees:
        for e in emp.fact_employment_history:
            fact_employment.append(e)
    for emp in employees:
        if by_date:
            employments = check_employment_by_date(by_date, fact_employment)
            print(f"Employments check by data: {employments}")

            if any(e.Responsibilities == responsibilities for e in employments):
                result.append(emp)
                print(f"argument function: {responsibilities}")
                print(f"e.Responsibilities: {[e.Responsibilities for e in employments]}")

    return result

def check_employment_by_date(by_date: datetime.date, fact_employment_history: list[schemas.Employment]):
    return [
        e
        for e in fact_employment_history
        if (e.EmploymentStart or datetime.date(1000, 1, 1)) <= by_date
        and (not e.EmploymentEnd or e.EmploymentEnd >= by_date)
    ]

下面是示例的员工雇佣数据:

Id  EmployeeId  EmploymentStart EmploymentEnd   Fired   PositionId  Responsibilities    PositionStart
866 20960       2024-05-01      2024-05-17      1       638893      1                   NULL
884 20960       2024-05-20      NULL            0       638893      0                   NULL

运行后的日志输出:

List:[]
Employments check by data: [Employment(Company=None, EmploymentStart=datetime.date(2024, 5, 1), EmploymentEnd=datetime.date(2024, 5, 17), Fired=True, Position=Dictionary(Name='Головний бухгалтер', Description='1231', SpecId=114, id=638893), IsPartTime=None, Responsibilities=True, TimeoffBalances=[], c_FreeTimeoffCount=None, Documents=[], id=866)]
argument function: True
e.Responsibilities: [True]
List:[]

我的需求很明确:根据数据库里的员工雇佣记录,筛选出指定日期(如果传入by_date)下职责为True的员工,职责为False的员工直接排除。可现在明明日志都显示找到了符合条件的记录,结果列表却还是空的,实在摸不着头脑,希望大家能帮我排查一下问题出在哪!

备注:内容来源于stack exchange,提问作者froozy3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:00:29