问题描述
有没有办法根据变量的值有选择地在 boto3 调用中传递 kw 参数?
例如在函数调用中client.update_server(ServerId=server_id,Protocols=protocols,SecurityPolicyName=policy)
如果协议为空/无,我的电话应该是
client.update_server(ServerId=server_id,SecurityPolicyName=policy)
如果政策是空的/无我的电话应该是
client.update_server(ServerId=server_id,Protocols=protocols)
这可以在 python (3.7x) 中实现吗?
解决方法
您可以使用 kwargs
,正如您所提到的。只需创建一个辅助函数并解析最初传入的 kwargs
以过滤掉 None
值。毕竟,kwargs
只是一本字典。
def update_server(client,**kwargs):
new_kwargs = {k: v,for k,v in kwargs.items() if v is not None}
client.update_server(**new_kwargs)