首页 > 解决方案 > 根据日期时间将不同的数据分配到字段中

问题描述

我正在做一个练习并努力按日期对项目字典进行排序。字典示例:

 [
{"emp_id": 1, "working": "Now", "start_work": datetime.datetime(..), "end_work": datetime.datetime()},
{"emp_id": 1, "working": "Now", "start_work": datetime.datetime(..), "end_work": datetime.datetime()},
{"emp_id": 1, "working": "Now", "start_work": datetime.datetime(..), "end_work": ""}] ->previous

一个新字段被添加到列表中,

[{"emp_id": 1, "working": "Now", "start_work": datetime.datetime(..), "end_work": ""}] -> new field

我的问题是新字段,working 应该是 Now,之前的 [Now] 应该是 [Was Working],另外两个字段必须是 [Worked]。我在 Python 中执行此操作,以根据 start_work 和 end_work 进行检查,但我不知道如何检查前一行以将工作分配给 [Was working] .. 有人能给我任何想法吗?在 Python 中工作

标签: python

解决方案


听起来您的列表已经按end_work字段排序,所以您真的只需要担心每个dict' 在列表中的位置。负指数派上用场了。

employees = [...]  # The original list
employees.append({...})  # Add the new employees
employees[-2]["working"] = "Was Working"  # Update the most recent previous employee
for emp in employees[:-3]:  # Update all other old employees
    emp["working"] = "Worked"

如果不是这种情况,您可以轻松实现。

employees.sort(key=lambda x: x["end_work"])
# Now add new employee and update previous employees

推荐阅读