将Python ast转换为JSON并返回

sirbozc5  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(168)

我知道如何通过ast2json库将python ast转换为json

import ast
from ast2json import ast2json
node = ast.parse("2+3", mode='eval')
e = eval(compile(node,'<string>','eval')) # equals 
node_j = ast2json(node)

字符串
这给了我一个物体

{'_type': 'Expression',
'body': {'_type': 'BinOp',
'col_offset': 0,
'left': {'_type': 'Num', 'col_offset': 0, 'lineno': 1, 'n': 2},
'lineno': 1,
'op': {'_type': 'Add'},
'right': {'_type': 'Num', 'col_offset': 2, 'lineno': 1, 'n': 3}}}


但是如何将node_j对象转换回ast对象呢?

6za6bjd0

6za6bjd01#

有一个反向转换工具,json2ast https://pypi.org/project/json2ast/

  • “此包的工作方向与ast2json包相反,ast2json包将Python AST对象作为输入,并生成JSON结构作为输出。其中一个函数json2ast期望ast2json创建的Python字典,并返回用于创建该字典的AST对象的副本。"*

https://pypi.org/project/ast2json/

相关问题