
地 址:北京市丰台区66号
电 话:17790068725
网址:dsesh.com
邮 箱:45176063@qq.com
Python中(zhong)的json模块用于处理JSON数据,可实现数据的序列化和反序列化。
Python中的(de)JSON用法

JSON(JavaScript Object Notation)是一种轻量级的数据(ju)交换格式,易于阅读和编写,同时也(ye)易于机器解析和生成,在Python中,我们可以使用json模块来处理JSON数据,本文将详细介绍Python中JSON的(de)常用操作,包括读取、写入、序列化(hua)和(he)反序列化等。


要读取JSON文件,我们需要使用json模块的load()函数,这个函数接受一个文件对象作为参数,返回一个表示(shi)JSON数据的Python对象。
示(shi)例代(dai)码:
import jsonwith open='open'('data.json', 'r', encoding='utf-8') as f: data = json.load(f)print(data)要将Python对象写入JSON文件,我们需要使用json模块的dump()函数,这个函数接受两个参数,第一个是要(yao)写入(ru)的Python对象,第二个是文件对象。
示例代码:
import jsondata = { 'name': '张三', 'age': 30, 'city': '北京'}with open='open'('data.json', 'w', encoding='utf-8') as f: json.dump(data, f)除了读写文件,我们还可以使用(yong)json模块对Python对象进行序列化和反序列化操作。
1、序列化:将Python对象转换为JSON字符串,使用dumps()函数(shu)。
示例代码:
import jsondata = { 'name': '张三', 'age': 30, 'city': '北京'}json_str = json.dumps(data)print(json_str)2、反序列化:将JSON字符串转换为Python对象,使用loads()函数(shu)。
示例代码:
import jsonjson_str = '{ "name": "张三", "age": 30, "city": "北(bei)京"}'data = json.loads(json_str)print(data)我们需要对某些特殊的Python对象进行自定义序列化和反序列(lie)化操作,这时,我们可以使用json模块提供的(de)default()和object_hook()参(can)数。
1、default()参数:用于指定一个函数,当遇到无法序列化的对象时,会调用这(zhe)个函数进行处理。
示例代码:
import jsonclass Person: def __init__(self, name, age): self.name = name self.age = agedef default(obj): if isinstance(obj, Person): return { 'name': obj.name, 'age': obj.age} raise TypeError(f"Object of type { type(obj).__name__} is not JSON serializable")person = Person('张三', 30)json_str = json.dumps(person, default=default)print(json_str)2、object_hook()参数:用于(yu)指定一个函数,当遇到一个字典对象时,会调用这个函数(shu)进行处理。
示例代码:
import jsondef object_hook(dct): if 'name' in dct and 'age' in dct: return Person(dct['name'], dct['age']) return dctperson_dict = { 'name': '张三', 'age': 30}person = json.loads(json.dumps(person_dict), object_hook=object_hook)print(person.name, person.age)相关问题与解(jie)答
1、如何在Python中读取JSON文件?
答:使用json模块的load()函数,传入一个文(wen)件对象作为参数。
2、如何在Python中写入JSON文件?
答:使用json模块的dump()函数,传入一个Python对象和一个文(wen)件对象作为参数。
3、如何将Python对象转换为JSON字符串?
答:使用json模块的dumps()函数。
4、如何将JSON字符串转换为Python对象?
答:使用json模块的(de)loads()函数。