首页 > 解决方案 > 使用python函数从字符串中提取参数

问题描述

我正在寻找一种方法来提取嵌入到 python 函数中的参数作为字符串返回给我。

例如:

'create.copy("Node_A", "Information", False)'
# expected return: ["Node_A", "Information", "False"]

'create.new("Node_B")'
# expected return: ["Node_B"]

'delete("Node_C")'
# expected return: ["Node_C"]

我的第一种方法是这样的正则表达式:

re.match(r"("(.+?")")

但它总是返回 None 。

我怎样才能得到这个论点的列表?

顺便说一句:我被迫使用 Python 2.7 并且只使用内置函数 :(

标签: pythonstringfunctionextractre

解决方案


您可以使用内置的ast模块解析这些表达式。

import ast

def get_args(expr):
    tree = ast.parse(expr)
    args = tree.body[0].value.args
    
    return [arg.value for arg in args]

get_args('create.copy("Node_A", "Information", False)') # ['Node_A', 'Information', False]
get_args('create.new("Node_B")') # ['Node_B']
get_args('delete("Node_C")') # ['Node_C']

推荐阅读