将dict保存到泡菜或写入文件



我有一个python脚本,该脚本返回一个我想将其存储在更大项目中的地方(该脚本运行速度很慢,所以我不想只是导入导入每次我想要字典时)。

dict很小,所以我看到了两个选择。我可以:

  1. 将dict保存到泡菜文件
  2. 将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

  3. 访问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将是更有益的选择。

最新更新