如何传入JSON文件中定义的变量值?

我有两个功能:

def fun1(a , b) : 
    print(a , b)

def fun2(c , d) : 
    print(c , d)


jsonfile = {    
    'function1' : {
        'callback' : 'fun1' , 
        'args' : ['a' , 'b']
    }, 
    'function2' : {
        'callback' : 'fun2',
        'args' : ['c' , 'd']
    }
}

# iter the json file looking for the function callback + the args to call them ..
for key , value in jsonfile.items() :
    function_name = value['callback']
    function_args = value['args']
    locals()[function_name](# how to pass the functions args ?? )

当我这样做的时候:

locals()[function_name](function_args)

我得到以下错误,因为函数认为我只传递了1个参数,而不是2个:

   locals()[function_name](function_args)
TypeError: fun1() missing 1 required positional argument: 'b'

有什么建议吗?

推荐答案

应打开参数列表:

locals()[function_name](*function_args)

Python相关问答推荐

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

发生异常:TclMessage命令名称无效.!listbox"

如何制作10,000年及以后的日期时间对象?

基于字符串匹配条件合并两个帧

将9个3x3矩阵按特定顺序排列成9x9矩阵

使用Python更新字典中的值

在pandas中使用group_by,但有条件

python中字符串的条件替换

改进大型数据集的框架性能

以逻辑方式获取自己的pyproject.toml依赖项

ModuleNotFoundError:没有模块名为x时try 运行我的代码''

Python Mercury离线安装

read_csv分隔符正在创建无关的空列

用0填充没有覆盖范围的垃圾箱

如何从一个维基页面中抓取和存储多个表格?

具有不同坐标的tkinter canvs.cocords()和canvs.moveto()

PYODBC错误(SQL包含-26272个参数标记,但提供了235872个参数,HY 000)

使用loc计算特定行的平均值,loc找不到行值

意外的麻木图像reshape 为网格问题

如何使用Pillow基于二进制掩码设置PNG的RGB值