python - 根据日期时间将不同的数据分配到字段中
问题描述
我正在做一个练习并努力按日期对项目字典进行排序。字典示例:
[
{"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 中工作
解决方案
听起来您的列表已经按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
推荐阅读
- reactjs - 堆栈溢出紧急情况!REACT-ROUTER-DOM 安装失败
- snowflake-cloud-data-platform - 我如何弄清楚为什么这个多面体在雪花中无效?
- dns - systemd-resolved - 如何启用单标签域
- angular - 如何在角度范围内定义样式?
- css - 使用 Shinymanager R 嵌入图像
- spring-boot - 在 application.properties 中通过服务名称为 @FeignClient 提供 URL,而不使用负载均衡器
- azure - 如何将多个 Blob 容器从一个存储帐户复制到另一个存储帐户(不同的订阅)
- r - R函数将结果写入csv文件
- regex - 如何在“-”之前“提取”字符串,但如果字符串本身可以包含“-”?
- c# - ASP.NET Core 3.1 将本地化资源文件移动到单独的项目