📅  最后修改于: 2023-12-03 15:04:39.610000             🧑  作者: Mango
在开发Python应用程序时,有时需要将数据保存到硬盘以便下一次访问时使用。这就是Python数据持久性的概念。Python3有许多标准库和第三方库可以实现数据持久性。在这篇文章中,我们将探讨一些有用的Python数据持久性资源。
pickle是Python的“序列化”或“序列化”库,它可以将Python对象转换为序列化的二进制格式,并在需要时恢复这些对象。pickle可以序列化几乎所有Python数据类型,包括列表、元组、字典、函数、类等等。要将对象pickle化,可以使用dump()
函数。例如:
import pickle
l = [1, 2, 3, 4, 5]
with open('list.pkl', 'wb') as f:
pickle.dump(l, f)
要从pickle的文件中加载数据,可以使用load()
函数:
with open('list.pkl', 'rb') as f:
newList = pickle.load(f)
print(newList)
注意,在pickle对象之前,您需要先打开一个二进制文件句柄。在这个例子中,我们将列表对象保存到了“list.pkl”文件中,并在需要时从文件中加载。
shelve是Python的“持久性字典”库,它将Python对象存储在磁盘上,就像字典一样。与pickle不同的是,shelve存储的对象可以按键值对方式访问。要使用shelve,您需要先打开一个shelve文件:
import shelve
d = shelve.open('mydb')
d['numbers'] = [1, 2, 3, 4, 5]
d.close()
在这个例子中,我们用shelve打开一个名为“mydb”的文件,并使用键“numbers”将一个列表存储在其中。存储数据后,我们需要关闭shelve文件。
要从shelve文件中检索数据,可以像访问字典一样使用键:
d = shelve.open('mydb')
lst = d['numbers']
print(lst)
d.close()
json库是Python标准库之一,用于处理JSON数据。许多Web API返回的数据都是JSON格式的。与pickle类似,json可以将Python对象序列化并写入文件。不过,json序列化的对象必须是简单对象,比如数字、字符串、列表和字典等。以下是一个json序列化的例子:
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as f:
json.dump(data, f)
要将json数据加载为Python对象,可以使用load()
函数:
with open('data.json', 'r') as f:
newData = json.load(f)
print(newData)
以上是几种有用的Python数据持久性资源。pickle和shelve非常适合存储复杂的Python对象,而json库则适合处理简单的数据。无论您选择哪个库,都可以将Python对象保存到硬盘上,并在需要时重新加载。