Python 将字典解包到模型中
使用Python 将字典解包到模型中,python,python-2.7,flask,Python,Python 2.7,Flask,使用**解包时,我需要与构造函数具有完全相同的参数 我的意思是,如果我在字典中有一个额外的项目,应该被忽略,我需要弹出该项目?目前,我正在尝试解包所有内容,我希望该项目将立即被排除,但我遇到以下错误: __init__() got an unexpected keyword argument 您只需让\uuuu init\uuuu接受所有关键字参数即可: def __init__(self, sentiment=None, topic=None, **kw): 这将导致在kw
**
解包时,我需要与构造函数具有完全相同的参数
我的意思是,如果我在字典中有一个额外的项目,应该被忽略,我需要弹出该项目?目前,我正在尝试解包所有内容,我希望该项目将立即被排除,但我遇到以下错误:
__init__() got an unexpected keyword argument
您只需让
\uuuu init\uuuu
接受所有关键字参数即可:
def __init__(self, sentiment=None, topic=None, **kw):
这将导致在kw
中收集剩余参数,该方法可以忽略这些参数。但是,这附带了一个警告,即您可能需要使用其他代码来构造此对象,而这些代码可能需要失败
或者,只需过滤掉另一个答案中提到的参数。您可以使用相关键构造一个新的dict,并使用该dict:
keys = {'sentiment', 'topic'}
kwargs = {k:v for k,v in negative_items.iteritems() if k in keys}
negative = NegativeSentimentAnalysis(**kwargs)
这是可行的,但有点粗糙。调用者应该负责提供正确的论点。@augurar说得好,不过这更多地回答了OP的这部分问题:如果字典中有一个应该忽略的附加项,我需要弹出该项吗?不,但是这种方式很难理解,我会注意到这一点。如果您不确定您的dict将是什么,那么我建议您首先不要进行自动解包。@user2990084除了问题本身,我只是对您进行
负面情绪分析的方法有点好奇。你能给我一些线索吗?Thanks@yan9yu,您有多个API来处理情绪分析。我只是保存输出。
def __init__(self, sentiment=None, topic=None, **kw):
keys = {'sentiment', 'topic'}
kwargs = {k:v for k,v in negative_items.iteritems() if k in keys}
negative = NegativeSentimentAnalysis(**kwargs)