gpt4 book ai didi

python - 从 JSON 记录 (dicts) 创建对象

转载 作者:行者123 更新时间:2023-12-04 09:01:18 25 4
gpt4 key购买 nike

我正在尝试使用来自某个 JSON 文件的数据创建一个 Python 类。 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 文件中的所有值。
import json

# read file
with open('phonebook.json', 'r') as myfile:
data = myfile.read()

# parse file
phonebook = json.loads(data)

class BaseAccount:
def __init__(self, full_name, address, phone_number, email):
self.full_name = full_name
self.address = address
self.phone_number = phone_number
self.email = email

def display_info(self):
print("Full Name:", self.full_name)
print("Address:", self.address)
print("Telephone Number:", self.phone_number)
print("E-mail:", self.email)

db = BaseAccount(full_name, address, phone_number, emai)
db.display_info()
我不太清楚如何将 JSON 文件调用到我的类中。你能提供指导吗?

最佳答案

来自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 .

关于python - 从 JSON 记录 (dicts) 创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63554472/

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