【问题标题】:Requests - Unable to Post date in ISO 8601 format in JSON Body请求 - 无法在 JSON 正文中以 ISO 8601 格式发布日期
【发布时间】: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


【解决方案1】:
currDateISO = datetime.datetime.now().strftime("%Y%m%dT%H%M%S")
prevDateISO = datetime.datetime.now().strftime("%Y%m%dT%H%M%S")

ISO time (ISO 8601) in Python

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-28
    • 2016-03-06
    • 1970-01-01
    • 2013-05-22
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    相关资源
    最近更新 更多