Python中如何在REST请求的sysparm_query参数内传递日期值过滤数据
Python调用ServiceNow接口按日期过滤数据方案
首先明确ServiceNow的sys_created_on字段查询规则:支持直接用>=操作符匹配大于等于指定日期的记录,日期要求为YYYY-MM-DD格式的字符串。
实现步骤
- 第一步:将计算得到的90天前日期转成符合要求的字符串格式
你已有的日期计算代码可以补充一行格式化逻辑:from datetime import date, timedelta today = date.today() today_90 = today - timedelta(days = 90) # 转成ServiceNow支持的日期字符串 filter_date = today_90.strftime("%Y-%m-%d") - 第二步:构造查询参数
推荐优先使用requests库的params参数自动拼接查询字符串,避免手动拼接URL出现编码错误,完整请求示例如下:import requests # 替换为你的ServiceNow实例地址 base_url = "https://<你的实例前缀>.service-now.com/api/now/table/incident" query_params = { "sysparm_limit": 1000, "sysparm_query": f"sys_created_on>={filter_date}" } # 替换为你的账号密码/认证token resp = requests.get( url=base_url, auth=("你的账号", "你的密码"), params=query_params )
补充说明
如果需要精确到时分秒的时间过滤,只需要把date替换为datetime,格式化字符串调整为"%Y-%m-%d %H:%M:%S"即可,ServiceNow接口兼容该时间格式。
内容的提问来源于stack exchange,提问作者felipe sales mendes
相关产品推荐
相关产品推荐

