首页 > 解决方案 > Python 请求:如何同时设置可选参数和非可选参数?

问题描述

我想用 API 查询我的数据库。

我有:

import requests
query_params = {'author':'grisham','year':'1998'}
response = requests.get(url='http://111.111.1.1:1000',params=query_params)

这很好用,我可以返回 1998 年出版的作者 grisham 的所有书籍的数据框。

但是,我想将其修改为“作者是一个强制性参数,但可以选择添加年份作为第二个参数”(以区分那些只想要他所有书籍的人,以及那些想知道他在某一年)。

我似乎在请求库中找不到参数,而不是参数,我可以将其更改为两个字典,可选参数和强制参数,并分别传递它们吗?还是有更好的方法来做到这一点?

我想就是我正在寻找的东西,想知道我的用例是否有更pythonic/高效/更清洁的东西?

标签: pythonpython-requests

解决方案


就像其他人所说的那样,由您来验证提供的参数以确定是否正确传递了任何必需的参数。requests库只是将其发送出去。

是的,您可以将两个字典传递到requests.get()(需要 Python 3.5+):

query_params = {**required_params, **optional_params}

推荐阅读