【发布时间】:2017-09-20 08:50:13
【问题描述】:
我需要将修改后的 python 对象转储回源代码。所以我试图找到一些东西来将真正的python对象转换为python ast.Node(稍后在astorlib中使用来转储源)
我想要的使用示例,Python 2:
import ast
import importlib
import astor
m = importlib.import_module('something')
# modify an object
m.VAR.append(123)
ast_nodes = some_magic(m)
source = astor.dump(ast_nodes)
请帮我找到some_magic
【问题讨论】:
-
为什么?这似乎是您描述您想要的解决方案而不是问题本身的情况。如果我不得不冒险猜测,那么您正在尝试在下次代码运行时保持对象的状态。这是将对象序列化为 JSON 格式并将它们保存到文件中的完美情况!!然后当代码再次运行时,您只需从文件中反序列化即可。
-
好吧,可以。问题 - 我想通过生成模板模型、表单、模板、视图、url 来加速开发简单的 django 页面。问题在于修改 django url。这是一个列表。所以我不能只写在文件的末尾。
-
使用
pickle、JSON等序列化格式 -
@Aaron3468,谢谢,但我们需要将其转换回源代码。这是给人类的。示例 - 生成新的 django 模型和 url