1

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

在阅读了 Thomas Kluyver对 Rob Galanakis 的博客文章的评论后,我决定问这个问题,标题为为什么要打扰 python 和配置文件?托马斯在他的评论中说

但是,如果您想通过任何方式更改应用程序内部的设置(如首选项对话框),则没有自动编写正确 Python 文件的好方法。

4

2 回答 2

4

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

于 2012-07-21T17:30:39.043 回答
1

正如文章所说,你最好使用 JSON/YAML 或其他格式,但如果你真的想使用 Python 字典并且只使用基本的 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())
于 2012-07-21T17:39:46.540 回答