首页 > 解决方案 > 键入 API JSON 预期格式

问题描述

我有一个访问 API 并返回其 JSON 的函数:

def get_api():
    return requests.get(url).json()

这种响应属于这种类型:

[{id: 3, name: 'X'},{id: 7, name: 'Y'},...]

我想声明返回值的类型,以便 linting 知道这一点,所以当我写的时候:

r=get_api()
for e in r:
    print(e["id"]) # linting ok
    print(e["something"]) # linting error, 'something' is not a valid key

JSON在这里很简单,但当然可以嵌套。

我正在使用 Python 3.6。

我应该如何使用打字?

标签: pythonpython-3.xpython-3.6python-typing

解决方案


您可以考虑使用库进行序列化和反序列化。即来自本机 python 3.x 标准库的编码器和解码器https://docs.python.org/3/library/json.html

一个类似的问题被问到 python:Jackson 在 python 中的替代品是什么?

这在类型化语言中更为常见(Java 有一种流行的称为 Jackson),因为键映射是一个更难的要求,但您可以使用多种替代方法来做到这一点。基本思想是将 JSON blob 映射到一个类并将其解析到/解析到该对象中(反之亦然,用于序列化)。


推荐阅读