python - 键入 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。
我应该如何使用打字?
解决方案
您可以考虑使用库进行序列化和反序列化。即来自本机 python 3.x 标准库的编码器和解码器https://docs.python.org/3/library/json.html
一个类似的问题被问到 python:Jackson 在 python 中的替代品是什么?
这在类型化语言中更为常见(Java 有一种流行的称为 Jackson),因为键映射是一个更难的要求,但您可以使用多种替代方法来做到这一点。基本思想是将 JSON blob 映射到一个类并将其解析到/解析到该对象中(反之亦然,用于序列化)。
推荐阅读
- excel - 如果其他三个属性都匹配,则替换 Excel 表中的值
- php - PHP中通过if语句连接SQL语句
- sql-server - 尝试使用示例数据库创建视图,但似乎无法获得它
- blazor - Blazor 显示来自数据库的数据
- python - Django runserver 错误:_frozen_importlib._DeadlockError:_ModuleLock('django.test.signals') 在 139824587568800 检测到死锁
- java - 如何通过线性节点中的索引使元素出列
- php - 如何获取每个变体的库存数量 woocommerce
- selenium - 无头谷歌浏览器:如何防止网站知道他们的窗口是否聚焦
- read-the-docs - 版本未显示在 readthedocs 中
- dataframe - pyspark中有没有办法计算唯一值