欢迎访问宙启技术站
智能推送

Python中dumps()函数与loads()函数之间的对应关系和使用方法

发布时间:2023-12-23 23:34:00

Python中的dumps()函数和loads()函数是用于序列化和反序列化对象的函数。dumps()函数用于将对象转换为字符串,而loads()函数用于将字符串转换为对象。它们之间的对应关系可以理解为将对象转换为字符串的过程与将字符串转换为对象的过程。

首先,我们来了解一下dumps()函数的使用。dumps()函数接受一个参数,即要序列化的对象。这个对象可以是Python的基本数据类型,也可以是自定义的类对象,甚至可以是嵌套对象。dumps()函数会将对象序列化为一个字符串,可以用于存储或传输。

下面是dumps()函数的使用例子:

import json

# 序列化一个字典对象
data = {"name": "John", "age": 30, "city": "New York"}
json_data = json.dumps(data)
print(json_data)  # 输出: '{"name": "John", "age": 30, "city": "New York"}'

# 序列化一个自定义的类对象
class Person:
   def __init__(self, name, age):
       self.name = name
       self.age = age
person = Person("John", 30)
json_data = json.dumps(person.__dict__)
print(json_data)  # 输出: '{"name": "John", "age": 30}'

接下来,我们来了解一下loads()函数的使用。loads()函数接受一个参数,即要反序列化的字符串。这个字符串应该是一个合法的JSON字符串,否则会抛出异常。loads()函数会将字符串反序列化为原来的对象。

下面是loads()函数的使用例子:

import json

# 反序列化一个JSON字符串为字典对象
json_data = '{"name": "John", "age": 30, "city": "New York"}'
data = json.loads(json_data)
print(data)  # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}

# 反序列化一个JSON字符串为自定义的类对象
class Person:
   def __init__(self, name, age):
       self.name = name
       self.age = age
json_data = '{"name": "John", "age": 30}'
person_dict = json.loads(json_data)
person = Person(person_dict['name'], person_dict['age'])
print(person.name)  # 输出: 'John'
print(person.age)  # 输出: 30

可以看到,通过loads()函数我们可以将一个JSON字符串还原为原来的对象。

综上所述,dumps()函数和loads()函数是Python中用于序列化和反序列化对象的函数。dumps()函数将对象转换为字符串,而loads()函数将字符串转换为对象。它们之间具有一一对应的关系,是灵活、高效的工具,可用于存储、传输和处理数据。