了解 jsonify() 函数。也许它用于显示联系人?



我必须用python构建一个使用json文件的人的地址簿。因此,我必须定义一个类联系人,该类具有名称,姓氏和邮件的属性。在解决方案中,有一个我从未想过的功能:jsonify(self(。我不明白它的作用以及为什么我需要它。有人可以帮我弄清楚吗?

def jsonify(self):
contact = {'name':self.name,'surname':self.surname,'mail':self.mail}
return contact

使用json库,您可以非常轻松地将对象转换为 JSON,但它需要知道如何转换它们。库不知道如何解释您的自定义类:

>>> import json
>>> contact = Contact("Hello", "World", "hello@world.com")
>>> contact_json = json.dumps(contact)
TypeError: Object of type 'Contact' is not JSON serializable

(json.dumps(obj)将其输入转换为 JSON 并将其作为字符串返回。您也可以执行json.dump(obj, file_handle)将其保存到文件中(。

字典是 Python 中的已知类型,因此json库知道如何将其转换为json格式:

>>> import json
>>> contact = Contact("Hello", "World", "hello@world.com")
>>> contact_json = json.dumps(contact.jsonify())
{
"name": "Hello",
"surname": "World",
"mail": "hello@world.com"
}

使用该jsonify方法,您可以将类中的字段转换为json库可以理解并知道如何翻译的内容。

这是将对象序列化为 JSON 的一种快速简便的方法,但不一定是最好的方法 - 理想情况下,您会告诉 JSON 库如何解释您的类(请参阅此相关问题:如何使类 JSON 可序列化(。

编辑:看到评论讨论 - 我假设你在这里了解Python数据结构和类。如果不是这种情况,那么值得先阅读这些内容。

最新更新