gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:23:06 25 4
gpt4 key购买 nike

我遇到了像“(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

有人可以提供有关如何执行此操作或哪个模块可以帮助以简洁的方式执行此操作的线索吗?

最佳答案

只需在前面放置一个虚拟函数名称即可:

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

关于python - 如何为参数编写自定义解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com