Python语言提供了两对函数用于序列化(serialization)和反序列化(deserialization)对象,分别是dumps、dump和loads、load。它们的用法和区别如下:
dumps和dump
- dumps:将数据序列化为字符串,返回str类型。
- dump:将数据序列化为文件句柄中的二进制数据。
在使用dumps函数时,我们通过指定更好的附加参数,可以得到一个格式化的JSON字符串。以下是在Python中使用dumps函数的示例代码:
import json
data = {"name": "Lucy", "age": 25, "hobby": ["swimming", "reading"]}
# 使用dumps将数据序列化为字符串
json_str = json.dumps(data, indent=4, separators=(',', ': '), sort_keys=True)
print(json_str) # 输出格式化的JSON字符串
在使用dump函数时,我们可以将一个Python对象序列化并存储在磁盘文件中。以下是在Python中使用dump函数的示例代码:
import json
data = {"name": "Lucy", "age": 25, "hobby": ["swimming", "reading"]}
# 将数据序列化并写入到文件中
with open('data.json', 'w') as f:
json.dump(data, f)
在这个示例中,我们使用了dump函数将Python对象data序列化并写入到了名为'data.json'的文件中。
loads和load
- loads:将数据从字符串中反序列化,返回Python对象。
- load:将数据从文件句柄中反序列化并返回Python对象。
在使用loads函数时,我们需要将待反序列化的字符串传递给loads函数来获得反序列化的Python对象。以下是在Python中使用loads函数的示例代码:
import json
json_str = '{"name": "Lucy", "age": 25, "hobby": ["swimming", "reading"]}'
# 使用loads将JSON字符串反序列化为Python对象
data = json.loads(json_str)
print(data) # 输出反序列化后的Python对象
在使用load函数时,我们需要将待反序列化的文件句柄传递给load函数来获得反序列化的Python对象。以下是在Python中使用load函数的示例代码:
import json
# 读取文件数据并反序列化成Python对象
with open('data.json', 'r') as f:
data = json.load(f)
print(data) # 输出反序列化后的Python对象
在这个示例中,我们使用了load函数从名为'data.json'的文件中反序列化Python对象。
总的来说,除了序列化的方式不同之外,dumps、dump和loads、load具有相似的功能。在实际的开发中,我们通常需要根据具体的场景来选择使用它们中的某一个。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中dumps与dump及loads与load的区别 - Python技术站