Python Keep Getting ValueError:没有足够的值来解压缩用于情绪分析的文本文件(预期为2,获得1)?

Python Keep Getting ValueError:没有足够的值来解压缩用于情绪分析的文本文件(预期为2,获得1)?,python,text-files,valueerror,Python,Text Files,Valueerror,我正在尝试使用以下代码将此文本文件转换为字典: with open("/content/corpus.txt", "r") as my_corpus: wordpoints_dict = {} for line in my_corpus: key, value = line.split('') wordpoints_dict[key] = value print(wordpoints_dict) 它不断返回: ValueError回溯(最近一次

我正在尝试使用以下代码将此文本文件转换为字典:

with open("/content/corpus.txt", "r") as my_corpus:
wordpoints_dict = {}
for line in my_corpus: 
  key, value = line.split('')
  wordpoints_dict[key] = value
print(wordpoints_dict)
它不断返回:

ValueError回溯(最近一次调用)
在()
2字点_dict={}
3对于my_语料库中的行:
---->4键,值=行。拆分(“-”)
5字点记录[键]=值
6打印(文字点)
ValueError:没有足够的值来解包(预期值为2,实际值为1)
文本文件中的数据如下所示:


您正试图在“-”处拆分文本值。并将其解包为两个值(键(在破折号之前)和值(在破折号之后))。但是,txt文件中的某些行不包含破折号,因此没有两个值需要解压缩。请尝试检查是否有空行,因为这可能是问题的原因。

您的代码与错误消息不匹配。我将假设错误消息是正确的

只要添加一点逻辑来处理一行中没有
-
的情况。如果您解决了这个问题,然后又碰到了问题的另一面,即行中有多个
-
,我不会感到惊讶。如果在您的文件中发生这种情况,您也必须处理这种情况,因为您将得到一个“太多的值无法解包”错误。以下是您的代码,其中添加了执行这两项操作的样板文件:

with open("/content/corpus.txt", "r") as my_corpus:
    wordpoints_dict = {}
    for line in my_corpus:
        parts = line.split('-')
        if len(parts) == 1:
            parts = (line, '')   # If no '-', use an empty second value
        elif len(parts) > 2:
            parts = parts[:2]    # If too many items from split, use the first two
        key, value = [x.strip() for x in parts]  # strip leading and trailing spaces
        wordpoints_dict[key] = value
    print(wordpoints_dict)

根据错误,您正在拆分
-
,但并非每一行都有该字符。您无法拆分它们,因为您的文本文件不是每一行都有
-
原因拆分无效,并且只返回一个值只需使用
行。拆分()
这将只提供单词和值,并消除空白。我想这就是你要找的。不要在连字符处拆分,这可能表示负值。