【发布时间】:2019-12-19 09:20:53
【问题描述】:
我想构建一个每天运行的脚本,以检索(昨天日期 - 今天日期)数据。
获取今天、昨天 ISO 8601 日期的代码,因为该应用程序仅接受 ISO 8601 格式。
currDate = datetime.datetime.now()
prevDate = datetime.datetime.today() - datetime.timedelta(days=1)
currDateISO = currDate.isoformat()
prevDateISO = prevDate.isoformat()
将上述 ISO 日期发布到请求正文中。
DATA = \
{'verb': 'query', \
'start_time': prevDateISO, \
'end_time': currDateISO \
}
res=requests.post(Host + url, headers=Header, data=json.dumps(DATA), verify=False)
错误(Python):
'error': 'invalid parameter', 'message': 'Error in field start_time: Time format must be ISO8601'}
取出开始/结束时间,在我的 Python 代码中工作。
我可以使用以下语法发帖:
{
"verb":"query",
"start_time":"2019-12-17T15:39:55.616Z",
"end_time":"2019-12-18T15:39:55.616Z"
}
【问题讨论】:
-
我不知道问题到底是什么。你能提供更多细节吗?
-
如果您在 API 请求中收到错误,为什么不尝试手动输入日期(作为字符串)然后测试请求?如果您没有收到错误,请查看 Python 的 iso 日期和您需要的日期之间的区别。
-
谢谢@HenryHarutyunyan。我想从此 Symantecc ATP (API) 检索数据。请求正文(开始-结束时间)只接受 ISO 格式的日期。我想告诉脚本,获取今天和明天的日期并发布请求。意思是,“start_time”将获得昨天的日期。类似查询条件;昨天 - 现在。抱歉,我不是编程方面的专家。
-
np。但我猜你收到了来自 API 的错误。您可以尝试手动设置日期吗?我的意思是只使用一些随机日期的字符串,看看响应是什么。
-
@HenryHarutyunyan,我在我的问题中提到了这一点。使用完整的 ISO 日期是可行的。
标签: python json api python-datetime symantec