从JSON记录创建对象(字典)

时间:2020-08-24 03:47:54

标签: python json python-3.x class dictionary

我正在尝试使用来自某个JSON文件的数据创建一个Python类。 JSON文件包含以下词典列表:

1
Hi, this is b.py
2

我还有一个应该调用JSON文件中所有值的类。

    {
  "phonebook": [
    {
      "full_name": "John Doe",
      "address": "QC",
      "phone_number": "+634444444",
      "email": "johnd@xyz.com"
    },
    {
      "full_name": "Jane Doe",
      "address": "LP",
      "phone_number": "+63555555",
      "email": "jannneee@xyz.com"
    },
    {
      "full_name": "Dragon Slayer",
      "address": "VC",
      "phone_number": "+6311111111",
      "email": "dslayer@xyz.com"
    }
  ]
}

我不太清楚如何将JSON文件调用到类中。您能提供指导吗?

1 个答案:

答案 0 :(得分:2)

在python3.8中,dataclasses使其变得简单:

from dataclasses import dataclass

@dataclass
class BaseAccount:
    full_name: str
    address: str
    phone_number: str
    email: str

    def display_info(self):
        ...
accounts = [BaseAccount(**entry) for entry in data['phonebook']]
accounts[0].display_info()

在第二个片段中,我使用字典解压缩来解压缩data["phonebook"]中的每条记录,以初始化新的BaseAccount