📜  Python数据持久性-有用的资源(1)

📅  最后修改于: 2023-12-03 15:04:39.610000             🧑  作者: Mango

Python数据持久性-有用的资源

在开发Python应用程序时,有时需要将数据保存到硬盘以便下一次访问时使用。这就是Python数据持久性的概念。Python3有许多标准库和第三方库可以实现数据持久性。在这篇文章中,我们将探讨一些有用的Python数据持久性资源。

pickle库

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库

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库

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对象保存到硬盘上,并在需要时重新加载。