Python Json模块中dumps、loads、dump、load函数介绍
一、Json模块介绍
Json(JavaScript Object Notation)是一种轻量级的数据交换格式,具有良好的可读性和易于编写的特点,因此广泛应用于网络传输和存储等方面。在Python中,我们可以使用内置的Json模块来进行Json数据的处理。Json模块主要包含以下四个核心函数:
json.dumps()
:将Python对象编码成Json数据格式字符串。json.loads()
:将Json数据格式字符串解码为Python对象。json.dump()
:将Python对象序列化并以Json数据格式写入文件。json.load()
:从Json数据格式文件中读取数据并反序列化为Python对象。
二、dumps函数
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False)
:该函数将Python对象编码成Json数据格式字符串。其中,obj为要序列化的Python对象,其他参数可以根据需求进行设置。
示例一:
import json
data = {'name': 'Tom', 'age': 20}
json_str = json.dumps(data)
print(json_str)
输出结果:
{"name": "Tom", "age": 20}
示例二:
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def reprJSON(self):
return self.__dict__
p = Person('Tom', 20)
json_str = json.dumps(p.__dict__)
print(json_str)
输出结果:
{"name": "Tom", "age": 20}
三、loads函数
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
:该函数将Json数据格式字符串解码为Python对象。其中,s为要解码的Json字符串,其他参数可以根据需求进行设置。
示例一:
import json
json_str = '{"name": "Tom", "age": 20}'
data = json.loads(json_str)
print(data)
输出结果:
{'name': 'Tom', 'age': 20}
示例二:
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def fromJson(json_str):
json_data = json.loads(json_str)
return Person(**json_data)
json_str = '{"name": "Tom", "age": 20}'
p = Person.fromJson(json_str)
print(p.name, p.age)
输出结果:
Tom 20
四、dump函数
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
:该函数将Python对象序列化并以Json数据格式写入文件。其中,obj为要序列化的Python对象,fp为要写入的文件对象,其他参数可以根据需求进行设置。
示例一:
import json
data = {'name': 'Tom', 'age': 20}
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f)
示例二:
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def reprJSON(self):
return self.__dict__
p = Person('Tom', 20)
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(p.__dict__, f)
五、load函数
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
:该函数从Json数据格式文件中读取数据并反序列化为Python对象。其中,fp为要读取的文件对象,其他参数可以根据需求进行设置。
示例一:
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
输出结果:
{'name': 'Tom', 'age': 20}
示例二:
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def fromJson(json_str):
json_data = json.loads(json_str)
return Person(**json_data)
with open('data.json', 'r', encoding='utf-8') as f:
json_str = f.read()
p = Person.fromJson(json_str)
print(p.name, p.age)
输出结果:
Tom 20
综上所述,Json模块中的这四个核心函数各自的作用如上所述,在使用中可以根据需要选用相应的函数进行操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Json模块中dumps、loads、dump、load函数介绍 - Python技术站