如何获取内存中 Python 字典的 Python源代码表示?
在阅读了 Thomas Kluyver对 Rob Galanakis 的博客文章的评论后,我决定问这个问题,标题为为什么要打扰 python 和配置文件?托马斯在他的评论中说
但是,如果您想通过任何方式更改应用程序内部的设置(如首选项对话框),则没有自动编写正确 Python 文件的好方法。
如何获取内存中 Python 字典的 Python源代码表示?
在阅读了 Thomas Kluyver对 Rob Galanakis 的博客文章的评论后,我决定问这个问题,标题为为什么要打扰 python 和配置文件?托马斯在他的评论中说
但是,如果您想通过任何方式更改应用程序内部的设置(如首选项对话框),则没有自动编写正确 Python 文件的好方法。
假设它只使用“基本” Python 类型,您可以写出repr()
结构的 ,然后使用ast.literal_eval()
将其读回。
正如文章所说,你最好使用 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())