我正在尝试通过REST访问IBM Maximo。 通过执行GET请求来检查特定事件是否存在,我可以使用Postman做到这一点: Postman image。 现在,我想在Python中执行此操作,但无法获得相同的输出:
params = {
'oslc.select':'*',
'oslc.where':'ticketid="IN43550232"',
}
r = requests.get(url,params=params)
当我 print(r.text)时,输出是页面的html,而当我 print(r.json())时,我得到:
文件“ C:\ Users \ User.spyder-py3 \ Projects \ GET.py”,行 27,在 打印(r.json())
文件 “ C:\ Users \ User \ anaconda3 \ lib \ site-packages \ requests \ models.py”, 第897行,在json中 返回complexjson.loads(self.text,** kwargs)
文件“ C:\ Users \ User \ anaconda3 \ lib \ json_ init _。py”, 负载中的第348行 返回_default_decoder.decode(s)
文件“ C:\ Users \ User \ anaconda3 \ lib \ json \ decoder.py”,行 解码中的337 obj,end = self.raw_decode(s,idx = _w(s,0).end())
文件“ C:\ Users \ User \ anaconda3 \ lib \ json \ decoder.py”,行 355,在raw_decode中 从None提高JSONDecodeError(“期望值”,s,err.value)
JSONDecodeError:期望值
据我所知,输出不是json格式...我的问题是,我该如何解决这个问题?谢谢
解决方案:
headers = {
'Cookie':'...',
'Accept':'*/*',
'Accept-Encoding':'gzip, deflate, br',
'Connection':'keep-alive',
}
params = {
'oslc.select':'*',
'oslc.where':'ticketid="IN43550232"',
}
r = requests.get(url, headers=headers, params=params)
r.encoding = 'utf-8'
print(r.json())
答案 0 :(得分:1)
尝试删除引号。像这样:
items