我有一个python脚本,该脚本返回一个我想将其存储在更大项目中的地方(该脚本运行速度很慢,所以我不想只是导入导入每次我想要字典时)。
dict很小,所以我看到了两个选择。我可以:
- 将dict保存到泡菜文件
-
将dict写为新的.py文件的文字,例如:
my_dict = slow_func() with open('stored_dict.py', 'w') as py_file: file_contents = 'stored_dict = ' + str(my_dict) py_file.write(my_dict)
然后我可以使用
from stored_dict import stored_dict
访问dict字面
我应该喜欢以下选项之一吗?
python dict像 json
一样实现。您可以使用json
模块将dict倾倒到文件中,然后轻松地将其加载到文件中:
import json
d = {1: 'a', 2: 'b', 3: 'c'}
with open('C:temp.txt', 'w') as file:
json.dump(d, file)
with open('C:temp.txt', 'r') as file:
new_d = json.load(file)
>>> new_d
{u'1': u'a', u'3': u'c', u'2': u'b'}
根据我的个人经验,我建议使用JSON如果:
- 您想要一个人类可读的文件,
- 在多种技术中兼容的文件类型,没有太多的实现开销。
- 一个易于编辑的文件(因为它可以简单地是文本文件)。
我建议使用泡菜,如果:
- 该项目的大多数将以Python编写。
- 词典可能会变得非常大/复杂或滚成较大的类。
- 需要一个非人类可读文件。
- 如果没有事先了解其构造的情况很难编辑。
根据您在问题中遇到的情况,JSON将是更有益的选择。