将所有python函数参数转换为json的快速方法

Lee*_*Lee 3 python json

假设我有一个定义如下的函数。

def func(param1, param2, param3, param4, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我想要实现的是获取一个 json 对象,如下所示

{
    "param1":param1, 
    "param2":param2, 
    "param3": param3, 
    "param4": param4, 
    "args":args, 
    "kwargs":kwargs
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以在函数中手动编写这个 json 对象,但只是想知道是否有任何快速方法可以以编程方式执行此操作,而不必担心更改参数名称、添加/删除参数等。

我还试图避免仅仅使用*argsand ,**kwargs因为我仍然想保持使用位置参数的不言自明的好处。

sal*_*ise 5

使用locals()可能是一种选择:

def func(param1, param2, param3, param4, *args, **kwargs):
    return dict(locals())
Run Code Online (Sandbox Code Playgroud)

演示:

In [6]: func(1,2,3,4,5,6,foo='yes')
Out[6]:
{'param1': 1,
 'param2': 2,
 'param3': 3,
 'param4': 4,
 'args': (5, 6),
 'kwargs': {'foo': 'yes'}}
Run Code Online (Sandbox Code Playgroud)