【发布时间】:2019-11-18 14:34:32
【问题描述】:
我想使用 API 查询我的数据库。
我有:
import requests
query_params = {'author':'grisham','year':'1998'}
response = requests.get(url='http://111.111.1.1:1000',params=query_params)
这很好用,我可以返回作者 grisham 于 1998 年出版的所有书籍的数据框。
但是,我想将其修改为“作者是一个强制性参数,但可以选择添加年份作为第二个参数”(以区分那些只想要他所有书籍的人与那些想知道什么的人他在某一年发表)。
我似乎在请求库中找不到参数,而不是参数,我可以将其更改为两个字典,可选参数和强制参数,并分别传递它们吗?或者有更好的方法吗?
我猜this 是我正在寻找的东西,想知道我的用例是否有更pythonic/高效/更清洁的东西?
【问题讨论】:
-
requests 对 API 的条件参数一无所知,它只是传递你告诉它的任何内容。因此,如果您不想发送年份,则不要将其添加为参数
-
如果您想对数据实施任何约束,您需要提供自己的
requests.get包装器,而不是直接使用它。PreparedRequest周围的子类或包装器也是可能的。