摘要: 你可以使用 Python 的pickle
库将字典数据保存到文件中。另一种将字典数据保存到文件的有效方法是使用 Python 内置的JSON
包。你也可以使用简单的文件处理函数,直接将字典数据存储到文本文件中。
问题: 给定一个 Python 字典。你将如何把字典中的数据保存到一个文件中,以便以后可以加载使用?
你可能需要持久性存储系统的帮助,如数据库或文件来存储序列化的数据结构,如数组、列表和字典。这样做的主要原因之一是数据库和文件是可重复使用的,也就是说,在分析了给定的数据后,我们可以将其存储在文件中,以后可以读取这些数据在应用程序中使用。
本文将讨论你可以存储在文件中的字典数据。
例子。考虑一下下面的字典。
d = {'country': 'Germany',
'capital': 'Berlin'}
挑战:你将如何在文件中存储上述字典的键值对?
相关教程。
有许多方法可以使用 Python 将字典数据存储到文件中。让我们看一下其中的一些。
方法1:使用Pickle
- Pickle是Python中的一个模块,它使用二进制协议来序列化和反序列化对象结构。"Pickling"指的是将Python对象转换为字节流的过程。"Unpickling"只是一个反向操作,其中字节流被转换为Python对象。Pickling 有时也被称为序列化。
- 实现Pickle文件的一个好主意是当你处理敏感数据时,或者当你需要跨会话保持程序状态时。
方法。
- 在
open(filename, mode)
函数的帮助下创建pickle文件(即filename.pkl)。由于我们将在pickle文件中存储数据,该文件以二进制流的形式存储数据,因此,以二进制("wb
")模式打开该文件。 - 使用
pickle.dump(dictionary, filename)
方法将字典数据存储/序列化到文件中。 - 要从该文件中读取数据,请调用
pickle.load(filename)
方法。 - 注意: 记得关闭该文件。
代码、让我们借助于下面的代码片段来直观地了解上述方法。
import pickle
d = {'country': 'Germany',
'capital': 'Berlin'}
file = open("dictionary_data.pkl", "wb")
pickle.dump(d, file)
file.close()
file = open("dictionary_data.pkl", "rb")
output = pickle.load(file)
print(output)
file.close()
输出。
输出 控制台。
{'country': 'Germany', 'capital': 'Berlin'}
方法2:使用json
方法。
- 通过调用
open('filename','mode')
,以写模式打开文件。 - 使用
json.dump(dictionary, filename)
函数将字典数据转换为json格式,并将其写入文件中。 - 要从这个文件中读出数据,通过调用
file.read()
函数从其中读出数据。 - 注意: 记得关闭该文件。
代码。
import json
d = {'country': 'Germany',
'capital': 'Berlin'}
file = open("dictionary_data.json", "w")
json.dump(d, file)
file.close()
file = open("dictionary_data.json", "r")
output = file.read()
print(output)
file.close()
输出。
输出 控制台。
{"country": "Germany", "capital": "Berlin"}
注意: json.dump()
方法是用来将Python对象转换为JSON字符串的。
方法3:使用Numpy
当涉及到将字典存储到文件时,使用JSON和Pickle是最好的选择。但我们也有另一种方法,即使用 Numpy 模块。
方法。调 用np.save(filename, dictionary)
函数,将文件保存到磁盘中。为了从这个文件中读取数据,我们调用np.load('file.npy', allow_pickle='TRUE').item()
函数。
代码。
import numpy as np
d = {'country': 'Germany',
'capital': 'Berlin'}
np.save('file.npy', d)
read_d = np.load('file.npy', allow_pickle='TRUE').item()
print(read_d)
方法4:基本方法
最后,也是最重要的,你可以将字典数据存储到一个简单的文本文件中,只需使用文件处理函数将数据写入文件即可。
方法。
- 调用
open('filename.txt', 'w')
函数,在写模式下创建/打开文件。 - 使用
file.write(str(dictionary))
函数将字典数据写入文件,然后关闭该文件。 - 要从这个文件中读出数据,就要打开这个文件,用
file.read()
方法从这个文件中读出数据。
d = {'country': 'Germany',
'capital': 'Berlin'}
f = open('file.txt', 'w')
f.write(str(d))
f.close()
f = open('file.txt', 'r')
data = f.read()
print(data)
f.close()
输出。
关于文件处理的推荐读物。
总结
在这篇文章中,我们学习了在Python中把字典数据存储到文件中的四种方法。在文件中存储字典数据的最合适的方法是使用 JSON 或 pickle 模块。然而,请随意尝试本教程中讨论的其他方法。