在python kwargs错误中无法调用dict
我有以下代码,从yaml读取:在python kwargs错误中无法调用dict,python,dictionary,keyword-argument,Python,Dictionary,Keyword Argument,我有以下代码,从yaml读取: if 'parameters' in options: for name, parameter_options in options['parameters'].items(): make_parameters = injector.parameters() print parameter_options parameter_injected = make_parameters(**parameter_opt
if 'parameters' in options:
for name, parameter_options in options['parameters'].items():
make_parameters = injector.parameters()
print parameter_options
parameter_injected = make_parameters(**parameter_options)
parameters = cft.add_parameters()
parameters(key, **parameter_injected)
这给了我一个错误:
参数_options是从yaml读取并打印出来的字典:
{'constraint_description': 'Malformed input-Parameter MyParameter must only contain upper and lower case letters', 'min_length': 12, 'description': 'to do some stuff', 'default': '10.201.22.33', 'max_value': 34, 'min_value': 12, 'allowed_values': ['sdd', 'asas'], 'max_length': 23, 'allowed_pattern': '[A-Za-z0-9]+', 'no_echo': True, 'type': 'String'}
因此,当我执行**参数\u选项时,不应该只是将dict转换为费用吗?我的错误,将我的代码更正为:
if 'parameters' in options:
for name, parameter_options in options['parameters'].items():
parameter_injected = injector.parameters(**parameter_options)
parameters = cft.add_parameters(name, **parameter_injected)
显示完整回溯和
make\u参数的内容。并将您的问题标记为Python2.7或Python3.x,除非您真正在编写跨版本代码并同时使用这两种代码。(我不认为您没有使用来自未来导入打印功能的)参数(键,**参数\u注入)=>参数。更新(键,参数\u注入)?参数是一个dict吗?@Scooby你希望那行代码做什么?问题是make_parameters是一个dict,您试图将其作为函数调用。似乎injector.parameters()
正在返回一个dict,您试图将其作为函数调用。make_参数
应该是什么?我的错,那是大脑放屁。更正了,谢谢!
if 'parameters' in options:
for name, parameter_options in options['parameters'].items():
parameter_injected = injector.parameters(**parameter_options)
parameters = cft.add_parameters(name, **parameter_injected)