Python 如何为参数编写自定义解析器

Python 如何为参数编写自定义解析器,python,python-2.7,Python,Python 2.7,我遇到了一个类似于“(d,a,b=2,c=3)”的字符串,需要将其解析为*args和**kwargs 我尝试使用ast模块,但它无法将赋值运算符转换为键、值对eval也给出了类似的错误,我也希望避免eval 注意,我希望避免在,上拆分,因为输入可以是以下形式: “(d[b,c],e=3,f=5,6])” 以下是我正在尝试的: >>import ast >>input_args = "(d, a, b=2, c=3)" >>ast_tree = ast.par

我遇到了一个类似于“(d,a,b=2,c=3)”的字符串,需要将其解析为*args和**kwargs

我尝试使用ast模块,但它无法将赋值运算符转换为键、值对
eval
也给出了类似的错误,我也希望避免eval

注意,我希望避免在
上拆分,因为输入可以是以下形式:

“(d[b,c],e=3,f=5,6])”

以下是我正在尝试的:

>>import ast
>>input_args = "(d, a, b=2, c=3)" 
>>ast_tree = ast.parse(input_args)
我得到:

 Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib/python2.7/ast.py", line 37, in parse
     return compile(source, filename, mode, PyCF_ONLY_AST)
 File "<unknown>", line 1
     (d, a, b=2, c=3)
             ^
SyntaxError: invalid syntax
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/ast.py”,第37行,在parse中
返回编译(源、文件名、模式、仅PyCF\u AST)
文件“”,第1行
(d,a,b=2,c=3)
^
SyntaxError:无效语法

有人能提供一些关于如何做这件事或哪个模块可以帮助以简洁的方式做这件事的信息和线索吗?

只需在前面放一个虚拟函数名:

input_args = "dummy(d, a, b=2, c=3)"
ast_tree = ast.parse(input_args)