python - 使用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 并且只使用内置函数 :(
解决方案
您可以使用内置的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']
推荐阅读
- c# - 下载 Execute in Memory Depended EXE C#
- python - 在 jupyter notebook 和 google colab 中使用 .so
- omnet++ - 使用 ieee80211DimensionalRadioMedium 模式时出错
- swiftui - SwiftUI - 关闭第二个模式表不起作用
- python - 如何使用 SciPy(或 SymPy)和 Matplotlib 绘制 Verhulst 方程的相图?
- firebase - 如何在 Firebase 中从 Firebase 获取实时更新
- ios - 如何将映射值添加到 Firestore Swift 5 中的数组?
- css - 根据条件更改背景颜色步进角材料
- javascript - 删除 MongoDB 中的重复项
- random-forest - 如何使用 Ilastik(VIGRA 算法)解释随机森林中变量的重要性表