如何在API中使用筛选条件?

2024-10-01 00:19:44 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码运行良好,我得到了成功的回复[200]

res = session.get("https://{domain}/learning/odatav4/public/user/learningHistory/v1/learninghistorys?$filter=criteria/personGUID eq '96545645F'")
print (res.url)

"https://{domain}learning/odatav4/public/user/learningHistory/v1/learninghistorys?$filter=criteria/personGUID%20eq%20'96545645F'"

当我传递参数时,我得到一个错误

{'error': {'code': None,
  'message': "The types 'Edm.Boolean' and 'Edm.String' are not compatible."}}
person_id = '96545645F'
params = {
    '$filter': f"criteria/personGUID eq '{person_id}'"
}
res = session.get("https://{domain}/learning/odatav4/public/user/learningHistory/v1/learninghistorys", params = params)
print (res)

'https://{domain}/learning/odatav4/public/user/learningHistory/v1/learninghistorys?%24filter=criteria%2FpersonGUID+eq+%2796545645F%27'


Tags: httpssessiondomainresparamspublicfiltereq
1条回答
网友
1楼 · 发布于 2024-10-01 00:19:44

您必须在URL中添加参数,因为请求不会在params属性中编码参数

试试这个:

person_id = '96545645F'
url = f"https://{domain}/learning/odatav4/public/user/learningHistory/v1/learninghistorys?$filter=criteria/personGUID eq '{person_id}'"
res = session.get(url)
print(res)

相关问题 更多 >