Python 无法将反序列化数据发送到Web API

Python 无法将反序列化数据发送到Web API,python,api,jsonexception,Python,Api,Jsonexception,我正在尝试使用一个API,我以前在各种工作中使用过这个API,来查询和获取相关数据。但最近,我无法做到这一点,因为返回了一个异常,我真的不知道 代码: import SIEMAuth import requests alert_id = '144116287822364672|12101929' query_params = {"id": {"value": alert_id}, "format": {"format": 0}} print(requests.post(SIEMAuth.u

我正在尝试使用一个API,我以前在各种工作中使用过这个API,来查询和获取相关数据。但最近,我无法做到这一点,因为返回了一个异常,我真的不知道

代码:

import SIEMAuth
import requests
alert_id = '144116287822364672|12101929'

query_params = {"id":   {"value": alert_id}, "format": {"format": 0}}
print(requests.post(SIEMAuth.url + 'ipsGetAlertPacket', json=query_params,  headers=SIEMAuth.session_headers, verify=False).text)
查询此时返回以下异常/回溯响应:

Can not construct instance of com.mcafee.siem.api.data.alert.EsmPacketFormat: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: java.io.StringReader@1a15fbf; line: 1, column: 2]

Process finished with exit code 0
在尝试上网了解更多关于异常的信息时,大多数结果都与Java编程环境中的Jackson Parser for Json有关,这不是我正在研究或意识到的


如果有人能帮忙,我将非常感激……

不幸的是,这是我建议的;基本上是这样或那样的,它坏了。他们的支持答复如下

我已经就这个问题联系了我的开发团队。我得到了下面的答复

该特定get并不打算在外部API中使用。它只能从界面上使用,并且自您使用的ESM版本起已被删除。如果您想在外部使用,则需要按照提交

我希望这能澄清你的问题

编辑:这实际上已经在他们的支持论坛上的一个线程中进行了扩展。您需要登录才能查看

尽管有名称,但此API不会返回与事件关联的实际数据包。事实上,当启用聚合时,ESM上并非所有与给定事件相关联的数据包都可用。可以通过UI从ELM检索原始数据包数据,但遗憾的是,目前没有一种通过编程实现的方法


该错误发生在服务器端,可能是因为您在请求中发送的内容不是服务器所期望的。你应该检查一下这个API的要求。@SergeBallesta我就是这么想的,但是如上所述,这个异常是不寻常的,因为我已经通过这个API查询了很多次,而且这是第一次出现。此外,我只想知道它本质上意味着什么。如果你愿意,我可以发布api调用要求。不幸的是,我认为api已经损坏或者文档不正确。他们的文档提供了示例json主体,
{“id”:(value)”,“format”:{“format”:0}
,这就是@DevanshuMisra提供的内容。我一直在研究McAfee ESM的10.2.0版本,我也遇到了同样的问题。