MyPy:请求对象的类型是什么?

时间:2017-03-22 00:22:02

标签: python python-requests typechecking python-3.6 mypy

我正在尝试使用Python 3的类型提示语法,以及MyPy静态类型检查器。我现在正在编写一个带有requests响应对象的函数,我想知道如何指出类型。

也就是说,在下面的一段代码中,我可以用???代替什么?

import requests

def foo(request: ???) -> str:
    return json.loads(request.content)['some_field']

r = requests.get("my_url")
return foo(r)

1 个答案:

答案 0 :(得分:1)

使用Response,或者提供它的完整路径:

def foo(request: requests.models.Response) -> str:
    return json.loads(request.content)['some_field']

或者,将其保存为您选择的名称:

Response = requests.models.Response

def foo(request: Response) -> str:
    return json.loads(request.content)['some_field']

p.s json.loads需要str,而不是bytes,因此您可能需要先decode content