gpt4 book ai didi

python - 如何在 Python 中键入注释 JSON 数据?

转载 作者:行者123 更新时间:2023-12-05 00:53:10 24 4
gpt4 key购买 nike

我正在向大量代码添加类型注释,以使其他开发人员清楚我的函数和方法的作用。如何键入注释一个将 JSON 数据作为参数输入并返回 JSON 数据的函数?

(非常简化的版本)

def func(json_data):
return json_data

我想要做的,但使用 JSON 而不是 int:

def add_nums(a: int, b: int) -> int:
return a+b

最佳答案

Json 对象通常就像一袋元素。它可以有数字、字符串、 float 、列表和嵌套的 json 对象。如果您想深入了解 JSON 正文的实际结构,那么遵循 Option1 和 2 可以为您提供帮助,或者您可以执行第 3 步。

第一个选项:请查看 Python3 docs links .

如果你可以清楚地定义你的 json 主体,那么你可以使用下面的例子。

from collections.abc import Sequence

ConnectionOptions = dict[str, str]
Address = tuple[str, int]
Server = tuple[Address, ConnectionOptions]

def broadcast_message(message: str, servers: Sequence[Server]) -> None:
...

# The static type checker will treat the previous type signature as
# being exactly equivalent to this one.
def broadcast_message(
message: str,
servers: Sequence[tuple[tuple[str, int], dict[str, str]]]) -> None:
...

第二个选项:您还可以定义自己的自定义类型类来使用,这与上面创建大量全局项不同。

https://docs.python.org/3/library/typing.html#newtype


from typing import NewType

UserId = NewType('UserId', int)
some_id = UserId(524313)

def get_user_name(user_id: UserId) -> str:
...

第三个选项: 像上面建议的答案一样,使用 str 是一种简单的方法。将您的 json 正文视为字符串并使用 json 模块将其转换为字符串,反之亦然

第四个选项:使用库来定义你的类 - https://marshmallow.readthedocs.io/en/stable/

如果您正在使用 Apache Spark,那么 https://github.com/ketgo/marshmallow-pyspark值得了解。

关于python - 如何在 Python 中键入注释 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68154122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com