Olu*_*ide 5 python python-requests
我正在为 API 编写一个 Python 包装器,该 API 支持具有值的查询参数(例如下面)和没有值的param1查询参数(例如下面),即param2
https://example.com/service?param1=value1¶m2
Run Code Online (Sandbox Code Playgroud)
就查询字符串而言,请求有两个选项:1)通过字典提供键/值对,或 2)提供字符串。如果你提供#1,你总是会为每个键/值对得到一个“=”......这不是你想要的。所以你必须使用#2,它可以让你做任何你想做的事情,因为它只包含你给它的整个查询字符串。缺点是您必须自己构造查询字符串。当然,有很多方法可以做到这一点。这是一种方法:
params = {'param1': 'value1', 'param2': None}
params = '&'.join([k if v is None else f"{k}={v}" for k, v in params.items()])
r = requests.get('https://example.com/service', params=params)
print(r.url)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以提供一个字典,就像您让 Requests 构建查询字符串一样,但它允许您指定一个 值Null来指示您只需要键名,而不需要“=”。None如果参数的值在字典中,则请求通常根本不包含该参数。
这段代码的结果正是您作为示例给出的结果:
https://example.com/service?param1=value1¶m2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4052 次 |
| 最近记录: |