如何将Python内存中的字典保存为文件作为Python源代码?

时间:2012-07-21 17:22:21

标签: python serialization configuration dictionary code-generation

如何获取内存Python字典的Python 源代码表示?

我决定在阅读Thomas Kluyver的comment关于Rob Galanakis的博客文章Why bother with python and config files?之后提出这个问题。在他的评论中,Thomas状态

  

但是,如果您想要任何方式更改应用程序内的设置   (就像首选项对话框一样),没有好的方法可以自动完成   写一个正确的Python文件。

2 个答案:

答案 0 :(得分:4)

假设它只使用“基本”Python类型,您可以写出结构的repr(),然后使用ast.literal_eval()将其读回。

答案 1 :(得分:1)

正如文章所说,你最好使用JSON / YAML或其他格式,但如果你真的想使用Python dict并且只使用基本的Python类型......

写出(尝试使用pformat尝试使其更具人性化):

from pprint import pformat # instead of using repr()

d = dict(enumerate('abcdefghijklmnopqrstuvwxyz'))
open('somefile.py').write(pformat(d))

回读

from ast import literal_eval
d = literal_eval(open('somefile.py').read())