我正在尝试使用来自某个 JSON 文件的数据创建一个 Python 类。 JSON 文件包含以下字典列表:
{
"phonebook": [
{
"full_name": "John Doe",
"address": "QC",
"phone_number": "+634444444",
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c7ada8afa9a387bfbebde9a4a8aa" rel="noreferrer noopener nofollow">[email protected]</a>"
},
{
"full_name": "Jane Doe",
"address": "LP",
"phone_number": "+63555555",
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="412b202f2f2f2424240139383b6f222e2c" rel="noreferrer noopener nofollow">[email protected]</a>"
},
{
"full_name": "Dragon Slayer",
"address": "VC",
"phone_number": "+6311111111",
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="05617669647c6077457d7c7f2b666a68" rel="noreferrer noopener nofollow">[email protected]</a>"
}
]
}
我还有一个类,它应该调用 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 记录(字典)创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63554472/