我有一个python字典,我想序列化为初始化该字典的键和值所需的python源代码。
我正在寻找像json.dumps()
这样的东西,但输出格式应该是Python而不是JSON。
我的对象非常简单:它是一个字典,其值为以下之一:
我知道我可以自己构建一个,但我怀疑存在涉及嵌套对象,关键字转义等的极端情况,所以我更倾向于使用现有的库来解决已经解决的问题。
答案 0 :(得分:3)
在最常见的情况下,不可能将任意Python对象转储到Python源代码中。例如。如果对象是套接字,则在新对象中重新创建相同的套接字是行不通的。
正如aix所解释的那样,对于简单的情况,repr
被明确设计为可重现的源表示。稍微概括一下,pprint模块允许通过PrettyPrinter类进行选择性自定义。
如果你想要它更通用,如果你唯一的要求是你得到可执行的Python源代码,我建议将对象pickle成一个字符串,然后生成 源代码
obj = pickle.loads(%s)
其中%s
被repr(pickle.dumps(obj))
替换。
答案 1 :(得分:2)
repr(d)
其中d
是您的字典可能是一个开头(虽然没有解决您提到的所有问题)。
答案 2 :(得分:0)