九易建网站的建站模板,电影网站cpa怎么做,wordpress lnmp1.4,公司域名是什么意思概述 在上一节#xff0c;我们介绍了如何在Python中使用xml#xff0c;包括#xff1a;SAX、DOM、ElementTree等内容。在这一节#xff0c;我们将介绍如何在Python中使用Json。Json的英文全称为JavaScript Object Notation#xff0c;中文为JavaScript对象表示法#xff…概述 在上一节我们介绍了如何在Python中使用xml包括SAX、DOM、ElementTree等内容。在这一节我们将介绍如何在Python中使用Json。Json的英文全称为JavaScript Object Notation中文为JavaScript对象表示法是一种存储和交换文本信息的语法类似XML。Json作为轻量级的文本数据交换格式比XML更小、更快更易解析也更易于阅读和编写。 在Python中使用Json非常简单因为Python有一个内置的json模块可以专门用来处理Json数据。 Json序列化 在Python中可以使用json模块将Python对象序列化为Json字符串这个过程我们称为Json序列化。
import jsondata {Name: Lucy,Age: 18,City: London
}json_data json.dumps(data)
# 输出{Name: Lucy, Age: 18, City: London}
print(json_data) 在上面的示例代码中我们首先导入了json模块然后创建了一个字典data最后使用json.dumps()函数将这个字典转换为Json字符串。 Json反序列化 在Python中可以使用json模块将Json字符串反序列化为Python对象这个过程我们称为Json反序列化。
import jsonjson_data {Name: Lucy, Age: 18, City: London}
data json.loads(json_data)
# 输出{Name: Lucy, Age: 18, City: London}
print(data) 在上面的示例代码中我们首先导入了json模块然后创建了一个Json字符串json_data最后使用json.loads()函数将这个Json字符串转换为了Python的字典。 注意json.loads()函数只能将Json字符串转换为Python对象而不能直接将Json数据转换为Python对象。如果有一个从网络或文件读取的Json数据你需要先将其转换为字符串然后再使用json.loads()函数进行反序列化。 读Json文件 在Python中可以使用json模块从文件中读取Json数据并将其反序列化为Python对象。
import jsonwith open(test.json, r) as file:data json.load(file)print(data) 在上面的示例代码中我们首先导入了json模块然后使用open()函数打开了一个名为test.json 的文件最后使用json.load()函数从文件中读取Json数据并将其转换为Python对象。注意需要确保Json数据是有效的否则 会抛出json.decoder.JSONDecodeError异常。 写Json文件 在Python中可以使用json模块将Python对象序列化为Json字符串并将该字符串写入文件。
import json data {Name: Lucy,Age: 18,City: London
}with open(test.json, w) as file: json.dump(data, file) 在上面的示例代码中我们首先导入了json模块然后创建了一个字典data最后使用json.dump()函数将字典data序列化为Json字符串并将该字符串写入文件。 将类对象转换为Json 在Python中可以使用自定义的JSONEncoder类将类对象转换为Json。
import json
from datetime import datetimeclass Person:def __init__(self, name, birth_date):self.name nameself.birth_date birth_dateclass PersonEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, Person):return {Name: obj.name,Birth_date: obj.birth_date.strftime(%Y-%m-%d) if obj.birth_date else None}return super().default(obj)person Person(Lucy, datetime.now())
json_str json.dumps(person, cls PersonEncoder)
# 输出{Name: Lucy, Birth_date: 2023-09-03}
print(json_str) 在上面的示例代码中我们首先定义了一个名为Person的类然后创建了一个该类的实例。接下来我们定义了一个名为PersonEncoder的子类继承自json.JSONEncoder并重写了其default方法。该方法会检查传入的对象是否是Person的实例如果是则将其转换为一个字典该字典包含对象的所有属性。最后我们使用json.dumps()函数将对象转换为Json字符串并将cls参数设置为PersonEncoder以便使用我们自定义的编码方式。 将Json转换为类对象 在Python中可以使用自定义的JSONDecoder类将Json转换为类对象。
import json
from datetime import datetimeclass Person:def __init__(self, name, birth_date):self.name nameself.birth_date birth_datedef custom_object_hook(obj):return Person(obj[name], datetime.strptime(obj[birth_date], %Y-%m-%d))json_str {name: Lucy, birth_date: 2022-02-02}
decoder json.JSONDecoder(object_hook custom_object_hook)
person decoder.decode(json_str)
# 输出Lucy 2022-02-02 00:00:00
print(person.name, person.birth_date) 在上面的示例代码中我们首先定义了一个名为Person的类和一个名为custom_object_hook的函数该函数将对象转换为类的实例。然后创建了一个json.JSONDecoder对象并传递了custom_object_hook函数作为参数。最后我们使用decode方法解析了一个Json字符串将其转换为Python的字典类型并通过custom_object_hook函数转换为Person类对象。