**kwargs 参数名有一个“.”在其中创建错误

**kwargs parameter name has a "." in it creating an error

我正在尝试使用 **kwargs 将参数传递给函数 还有些参数名称包含一个 .我收到一个错误,因为代码编辑器需要参数名称但无法识别它,可能是因为“.”

def get_active_offers(**kwargs):
    params = {}
    for args in kwargs:
        params[args]=kwargs.values() 
    response = api_request(params)
    return response


test = get_active_offers(BasicFilters.PriceFrom="1")

有没有办法绕过它(比如参数的 f 字符串?)

目前我的解决方案是将参数的名称和值作为列表传递并使用更简单的名称来命名,但我正在尝试学习正确的方法?

def get_active_offers(**kwargs):
    params = {}
    for args in kwargs.values():
        params[args[0]]=args[1] 
    response = api_request(params)
    return response


test = get_active_offers(argument = ["BasicFilters.PriceFrom","1"])

正如其中一条评论所说,您可以将参数作为字典传递:

def get_active_offers(**kwargs):
    params = {}
    for args in kwargs:
        params[args]=kwargs.values() 
    response = api_request(params)
    return response


test = get_active_offers(**{"BasicFilters.PriceFrom":"1"})

以上使用带参数的**的语法称为“字典解包”