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

如何从列表中筛选特定时间段日期对应的PR ID?

筛选指定月份的PR ID

Python脚本实现

如果你用Python处理这个列表,可以借助datetime模块解析日期字符串,判断月份后筛选提取PR ID:

from datetime import datetime

# 你的原始数据
pr_list = [
    {
        "Date Merged": "6/1/2023 3:46:53 PM",
        "PR ID": "470"
    },
    {
        "Date Merged": "5/30/2023 2:44:25 PM",
        "PR ID": "447"
    }
]

# 筛选5月的PR ID
may_pr_ids = [
    item["PR ID"]
    for item in pr_list
    # 解析日期字符串,判断月份是否为5
    if datetime.strptime(item["Date Merged"], "%m/%d/%Y %I:%M:%S %p").month == 5
]

print(may_pr_ids)  # 输出结果:['447']

Ansible中实现

如果你是在Ansible里处理这个变量,结合你提到的map过滤器,再搭配selectattr和日期处理就能完成筛选:

方式1:正则匹配(简单快速)

直接用正则匹配日期开头为5/的条目:

- name: 提取5月PR ID
  hosts: localhost
  vars:
    pr_data:
      - {"Date Merged": "6/1/2023 3:46:53 PM", "PR ID": "470"}
      - {"Date Merged": "5/30/2023 2:44:25 PM", "PR ID": "447"}
  tasks:
    - debug:
        msg: "{{ pr_data | selectattr('Date Merged', 'regex', '^5/') | map(attribute='PR ID') | list }}"

方式2:日期解析(严谨准确)

通过date过滤器将字符串转为日期对象,再判断月份:

- name: 严谨提取5月PR ID
  hosts: localhost
  vars:
    pr_data:
      - {"Date Merged": "6/1/2023 3:46:53 PM", "PR ID": "470"}
      - {"Date Merged": "5/30/2023 2:44:25 PM", "PR ID": "447"}
  tasks:
    - debug:
        msg: "{{ pr_data | selectattr('Date Merged', 'date', '%m/%d/%Y %I:%M:%S %p') | selectattr('Date Merged', 'month', 5) | map(attribute='PR ID') | list }}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:12:11