Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django在函数参数中等于。动态设置变量_Python_Django_Python 3.x_Django Rest Framework - Fatal编程技术网

Python Django在函数参数中等于。动态设置变量

Python Django在函数参数中等于。动态设置变量,python,django,python-3.x,django-rest-framework,Python,Django,Python 3.x,Django Rest Framework,我认为这就是所谓的“位置参数”或相反或关键字参数。我已经用Python Django和rest框架编写了一个脚本,它必须从用户那里获取参数并将其提供给Amazon API。这是代码 page = request.query_params.get('page'); search = request.query_params.get('search'); search_field = request.query_params.get('search_field'); search_index = r

我认为这就是所谓的“位置参数”或相反或关键字参数。我已经用Python Django和rest框架编写了一个脚本,它必须从用户那里获取参数并将其提供给Amazon API。这是代码

page = request.query_params.get('page');
search = request.query_params.get('search');
search_field = request.query_params.get('search_field');
search_index = request.query_params.get('search_index');

response = amazon.ItemSearch(Keywords=search, SearchIndex=search_index, ResponseGroup="ItemAttributes,Offers,Images,EditorialReview,Reviews")

在此代码中,文本
Keywords=search
各不相同。就是。它可能类似于这个Actor=search、Title=search或Publisher=search。我不知道如何使
关键字部分动态,以便它更改用户的输入,例如Actor、Title、,或者Publisher

我认为您应该建立一个kwargs字典,然后使用
**
语法为函数调用扩展它。我将给出一个假设
search_字段
query参数更改搜索的示例:

search = request.query_params.get('search');
search_field = request.query_params.get('search_field');
search_index = request.query_params.get('search_index');

kwargs = {
    'SearchIndex': search_index,
    'ResponseGroup': 'ItemAttributes,Offers,Images,EditorialReview,Reviews'
}

# Presuming search_field is the key, i.e. "Keywords", or "Actor"
kwargs[search_field] = search
### kwargs['Keywords'] = search
response = amazon.ItemSearch(**kwargs)

我用字典代替了。我就是这样做的

    page = request.query_params.get('page');
    search = request.query_params.get('search');
    search_field = request.query_params.get('search_field');
    search_index = request.query_params.get('search_index');

    dict = {'SearchIndex':search_index, 'ResponseGroup': 'ItemAttributes,Offers,Images,EditorialReview,Reviews'}
    dict[search_field] = search;
    response = amazon.ItemSearch(**dict)

我刚刚传递了一本字典,里面有我的动态变量作为键。

谢谢。在回答了我自己的问题后,我看到了这一点。没关系,很高兴你找到了一个解决方案:)在这些情况下,
**
扩展技巧非常有用。