首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将JSON转换为自定义类的实例?

如何将JSON转换为自定义类的实例?
EN

Stack Overflow用户
提问于 2021-06-04 01:57:33
回答 2查看 58关注 0票数 1

我不确定以前是否有人问过这个问题,但我找不到相关的自定义映射。通常,它是直接的JSON到对象的1:1映射。

下面是我的示例:

代码语言:javascript
复制
class Test():
    id: str
    name: str
    msg: str

data = [
    {
        "id": "12345",
        "client": "test",
        "msg": "random"
    }, {
        "id": "54321",
        "client": "test-2",
        "msg": "random-2"
    }
]

所以在上面我有一个JSON,我想直接将它转换成我在第一个类上拥有的对象。注意,来自JSON的“客户端”变成了name

所以当我加载这个对象的时候,最终的输出是。

代码语言:javascript
复制
data = [
    {
        "id": "12345",
        "name": "test",
        "msg": "random"
    }, {
        "id": "54321",
        "name": "test-2",
        "msg": "random-2"
    }
]
EN

回答 2

Stack Overflow用户

发布于 2021-06-04 02:02:06

代码语言:javascript
复制
class Test():
    def __init__(self, id, client, msg):
        self.id = id
        self.name = client
        self.msg = msg

data = [
    {
        "id": "12345",
        "client": "test",
        "msg": "random"
    }, {
        "id": "54321",
        "client": "test-2",
        "msg": "random-2"
    }
]

# unpack values from dict and pass in as arguments for Test.__init__()
objects = [Test(**item) for item in data] 
票数 2
EN

Stack Overflow用户

发布于 2021-06-04 02:19:49

您也可以使用Pydantic来定义您的类,如下所示:

代码语言:javascript
复制
from pydantic import BaseModel

class User(BaseModel):
    id: str
    name: str
    msg: str

    def __init__(self, id: str, client: str, msg: str) -> None:
        super().__init__(id=id, name=client, msg=msg)

users = [
    {
        'id': '12345',
        'client': 'test',
        'msg': 'random',
    },
    {
        'id': '54321',
        'client': 'test-2',
        'msg': 'random-2',
    }
]

objects = [User(**user) for user in users]

print(objects)
# Output
[
   User(id='12345', name='test', msg='random'),
   User(id='54321', name='test-2', msg='random-2')
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67826510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档