Python ValueError: недостаточно значений для распаковки (ожидается 2, получено 1) - PullRequest
0 голосов
/ 20 июня 2020

В моем текстовом файле у меня есть данные о строках. Я пытаюсь распаковать их с помощью Split (), но, к сожалению, выдает ошибку как «ValueError: недостаточно значений для распаковки (ожидается 2, получено 1)». Пожалуйста, помогите мне решить, если вы знаю

with open('Documents\\emotion.txt', 'r') as file:
    for line in file:
        clear_line = line.replace("\n", '').replace(",", '').replace("'", '').strip()
        print(clear_line)
        word,emotion = clear_line.split(':')

У меня такой тип данных

victimized: cheated
accused: cheated
acquitted: singled out
adorable: loved
adored: loved
affected: attracted
afflicted: sad
aghast: fearful
agog: attracted
agonized: sad
alarmed: fearful
amused: happy
angry: angry
anguished: sad
animated: happy
annoyed: angry
anxious: attracted
apathetic: bored

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Это происходит из-за более чем 1 пустой строки в конце файла . Остальная часть кода работает нормально.

Вы можете сделать следующее, чтобы избежать ошибки.

if not clear_line:
    continue

word, emotion = clear_line.split(':')
0 голосов
/ 20 июня 2020

Эта ошибка может быть вызвана, если в вашем файле есть пустые строки, потому что вы говорите python распаковать [''] в word, emotion. Чтобы решить эту проблему, вы можете добавить инструкцию if следующим образом:

with open('Documents\\emotion.txt', 'r') as file:
    for line in file:
        if line:
            clear_line = line.replace("\n", '').replace(",", '').replace("'", '').strip()
            print(clear_line)
            word,emotion = clear_line.split(':')

if line: означает, что строка не пуста.

...