【问题标题】:How do I convert this data structure to JSON using Pydantic?如何使用 Pydantic 将此数据结构转换为 JSON?
【发布时间】:2021-06-10 15:41:38
【问题描述】:

我有一个数据结构,它由一个带有字符串键的字典组成,每个键的值是一个 Pydantic 模型。

例如,字典可能如下所示:

{
 "hello": MyPydanticModel(name="hello"),
 "there": MyPydanticModel(name="there")
}

我知道我可以调用 .json() 将 Pydantic 模型转换为 JSON,但是将字典转换为 JSON 的最直接方法是什么。我需要使用 py2json 或其他库吗?

非常感谢。

【问题讨论】:

    标签: python json pydantic


    【解决方案1】:
    import json
    from pydantic import BaseModel
    
    class Example(BaseModel):
        id: int
    
    table = {
        'a': Example(id=1),
        'b': Example(id=2)
    }
    
    _dict = {k: v.dict() for k, v in table.items()}
    _json = json.dumps(_dict)
    
    

    【讨论】:

    • 谢谢,我们试试这个
    【解决方案2】:

    您还可以使用映射root type 为数据结构创建模型,并使用其json 方法。像这样:

    from typing import Dict
    from pydantic import BaseModel
    
    
    class MyPydanticModel(BaseModel):
        name: str
    
    
    class MyPydanticModelOut(BaseModel):
        __root__: Dict[str, MyPydanticModel]
    
    
    obj = {
        'hello': MyPydanticModel(name='a'),
        'there': MyPydanticModel(name='b')
    }
    
    print(MyPydanticModelOut.parse_obj(obj).json())  # {"hello": {"name": "a"}, "there": {"name": "b"}}
    

    【讨论】:

      猜你喜欢
      • 2011-04-08
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      相关资源
      最近更新 更多