我在Postman中使用以下过滤器在Web API中发出POST请求,但无法使用请求库在Python中发出简单的POST请求。
首先,我向这个URL(http://10.61.202.98:8081/T/a/api/rows/cat/ect/tickets)发送一个POST请求,其中Postman中的以下过滤器应用于主体,并选中raw和JSON(application/JSON)选项。Filters in Postman
{
"filter": {
"filters": [
{
"field": "RCA_Assigned_Date",
"operator": "gte",
"value": "2017-05-31 00:00:00"
},
{
"field": "RCA_Assigned_Date",
"operator": "lte",
"value": "2017-06-04 00:00:00"
},
{
"field": "T_Subcategory",
"operator": "neq",
"value": "Temporary Degradation"
},
{
"field": "Issue_Status",
"operator": "neq",
"value": "Queued"
}],
"logic": "and"
}
}
秒,我正在使用以下代码对请求库应用一个简单的筛选器。import requests
payload = {'field':'T_Subcategory','operator':'neq','value':'Temporary Degradation'}
url = requests.post("http://10.61.202.98:8081/T/a/api/rows/cat/ect/tickets",data=payload)
但我得到的是门票的完整数据,而不仅仅是那些不是暂时降级的。
第三个,系统实际上正在工作,但我们遇到2-3分钟的延迟来查看数据。逻辑如下:我们有8个用户,我们希望看到每个用户的所有票证都不是临时降级的,然后我们执行:def get_json():
if user_name == "user 001":
with urllib.request.urlopen(
"http://10.61.202.98:8081/T/a/api/rows/cat/ect/tickets?user_name=user&001",timeout=15) as url:
complete_data = json.loads(url.read().decode())
elif user_name == "user 002":
with urllib.request.urlopen(
"http://10.61.202.98:8081/T/a/api/rows/cat/ect/tickets?user_name=user&002",timeout=15) as url:
complete_data = json.loads(url.read().decode())
return complete_data
def get_tickets_not_temp_degradation(start_date,end_date,complete_):
return Counter([k['user_name'] for k in complete_data if start_date < dateutil.parser.parse(k.get('DateTime')) < end_date and k['T_subcategory'] != 'Temporary Degradation'])
基本上,我们从当前和去年获得了整套票,然后我们让Python按用户过滤整套票,到目前为止只有10个用户,这意味着这个过程重复了10次,让我毫不惊讶地发现为什么我们会得到延迟。。。
我的问题是如何解决请求库的这个问题?我正在使用下面的链接Requests library documentation作为一个教程,使其工作,但它只是似乎我的有效载荷没有被读取。