如果数据在列表中,如何过滤请求中的数据?



我有一个名为sampleid_list的sampleId列表,现在我想做一个请求我只想在sampleId出现在sampleid_list时获得sampleId

这是我的代码

import requests
sampleid_list = [592785, 592787, 592789, 592790, 592791, 592795, 592796]
headers = {'Authorization': 'Bearer ' + token}
proxies = {'https': 'proxy.services.dekra.com:8080'}
url1 = 'https://**-**-***.***.com/odata/Results'
params_1 = (
('$filter','SampleId in ', sampleid_list),
('$select', 'ResultId, CompletedOn, EnteredValue, EnteredOn, TextValuen'),
('$count', 'true'),
('$expand', 'Test($expand=Sample($select=SampleId)), Test($expand=TestType($select=Name)), Test($select=SpecificationStatus), ResultType($select=Name), Unit($select=Name)n'),
)
response_1 = requests.get(url1, headers=headers, proxies=proxies, params=params_1)
r1 = response_1.json()
print(r1)

现在困难的是SampleId不是在/Results的基础url中,而是从/Sample扩展而来

我的当前输出:

Traceback (most recent call last):
File "c:/data/GORGE/Desktop/VSprojects/EnergyZero/EnergyZero_API.py", line 156, in <module>
response_1 = requests.get(url1, headers=headers, proxies=proxies, params=params_1)
File "C:ProgramDataAnaconda3libsite-packagesrequestsapi.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "C:ProgramDataAnaconda3libsite-packagesrequestsapi.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:ProgramDataAnaconda3libsite-packagesrequestssessions.py", line 516, in request
prep = self.prepare_request(req)
File "C:ProgramDataAnaconda3libsite-packagesrequestssessions.py", line 459, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "C:ProgramDataAnaconda3libsite-packagesrequestsmodels.py", line 314, in prepare
self.prepare_url(url, params)
File "C:ProgramDataAnaconda3libsite-packagesrequestsmodels.py", line 432, in prepare_url
enc_params = self._encode_params(params)
File "C:ProgramDataAnaconda3libsite-packagesrequestsmodels.py", line 97, in _encode_params
for k, vs in to_key_val_list(data):
ValueError: too many values to unpack (expected 2)

你的bug:

params应该是元组的dictlist。每个元组应该包含2个元素(key,val),但是params_1是元组的tuple,并且您有超过2个元素。

bug的演示(第三个请求将抛出你在代码中得到的异常)

import requests
url = 'https://w3schools.com/python/demopage.php'
x = requests.get(url, params = {"model": "Mustang"})
print(x.status_code)
y = requests.get(url, params = [("model", "Mustang")])
print(y.status_code)
bug = requests.get(url, params = (("model", "Mustang","bug")))
print(bug)

最新更新