繁体   English   中英

Python ValueError:要解压的值太多(预期为 3)

[英]Python ValueError: too many values to unpack (expected 3)

我从这段代码中得到了这个异常:

from collections import Counter, ChainMap
from itertools import chain
import re
import pickle

class EmoLex(object):

    def __init__(self, emolex_filepath=None):

        if emolex_filepath:
            with open(emolex_filepath) as emolex_file:


                self.parser = self._load_and_parse(emolex_file)
                

    def __len__(self):
        return len(self.keys())

    def keys(self):
        return self._parser_keys()

    def _parser_keys(self):
        return self.parser.keys

    def categorize_token(self, token):
        return self.parser[token.lower()]

    def annotate_doc(self, doc):
        return [ self.categorize_token(word.lower()) for word in doc ]

    def summarize_doc(self, doc):
        annotation = self.annotate_doc(doc)

        # return just the summarization
        return self.summarize_annotation(annotation, doc)

    def summarize_annotation(self, annotation, doc):
        wc = len([w for w in doc if re.match('\w+', w)])
        ctr = Counter(list(self._flatten_list_of_sets(annotation)))

        # Convert to percentiles
        summary = {k: float(v)/float(wc) for (k,v) in dict(ctr).items()}

        # Set keys that did not occur to 0
        not_counted = { k: 0.0 for k in
                self._parser_keys() - set(summary.keys()) }

        # Merge the two dictionaries
        return dict(ChainMap(summary, not_counted))

    def load(self, pickle_filepath):
        with open(pickle_filepath, 'rb') as pickle_file:
            self.parser = pickle.load(pickle_file)

    def dump(self, pickle_filepath):
        with open(pickle_filepath, 'wb') as pickle_file:
            pickle.dump(self.parser, pickle_file)


    l_of_s: List[Set[str]] -> generator List[str]

    def _flatten_list_of_sets(self, l_of_s):
        return chain.from_iterable([ list(categories)
            for categories in l_of_s ])

    def _load_and_parse(self, emolex_file):
        return NrcDiscreteParser(emolex_file.read().splitlines())

#EmoLex(emolex_filepath="/Users/sakshigupta/Dropbox/Sakshi_July_2021/reports_Old_and_New/NRC-VAD-Lexicon.txt")
lexicon = EmoLex("/Users/sakshigupta/Dropbox/Sakshi_July_2021/reports_Old_and_New/NRC-VAD-Lexicon.txt")

你打电话给哪个function? 当返回值的数量超过预期值的数量时,会出现此异常。 检查下面给出的示例

def dummy_function():
return 1,2,3

在调用上述 function 时只有两个返回变量

a,b = dummy_function()

我明白了->

ValueError: too many values to unpack (expected 2)

这意味着在调用者端我只期望两个值,但功能返回超过 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM