如何在python中为值创建ast节点?

如何在python中为值创建ast节点?,python,abstract-syntax-tree,Python,Abstract Syntax Tree,我正在寻找一种从存储在变量中的值创建ast节点的方法 例如,我可以手动为某些类型执行此操作 def to_ast_node(value): t = type(value) type_map = { int: ast.Num, float: ast.Num, str: ast.Str } ret_type = type_map.get(t, None) if ret_type: return r

我正在寻找一种从存储在变量中的值创建ast节点的方法

例如,我可以手动为某些类型执行此操作

def to_ast_node(value):
    t = type(value)
    type_map = {
        int: ast.Num,
        float: ast.Num,
        str: ast.Str
    }
    ret_type = type_map.get(t, None)
    if ret_type:
        return ret_type(self.return_value)
但我想知道是否有一个模块/方法可以对任何值执行此操作,例如自定义类型、列表、dict等


感谢

对于大多数类型,所有自定义类型,甚至一些内置类型,都没有文本,因此最多可以尝试发出代码来重新创建对象,这是非常复杂、脆弱的。是否无法将变量转储到ast?ast表示Python源代码。您希望结果是什么样的Python源代码?我看到了自定义类型等的局限性。我想我会很高兴看到非简单类型的pickle值。那么Ast可能会解开一个二进制blob?