У меня есть следующие данные в текстовом файле с именем 'user_table.txt':

Jane - valentine4Me
Billy 
Billy - slick987
Billy - monica1600Dress
 Jason - jason4evER
Brian - briguy987321CT
Laura - 100LauraSmith
   Charlotte - beutifulGIRL!
  Christoper - chrisjohn

Я пытаюсь прочитать эти данные в словарь Python, используя следующий код:

users = {}

with open("user_table.txt", 'r') as file:
    for line in file:
        line = line.strip()
        
        # if there is no password
        if '-' in line == False:
            continue
        
        # otherwise read into a dictionary
        else:
            key, value = line.split('-')
            users[key] = value
            
print(users)

Я получаю следующую ошибку:

ValueError: not enough values to unpack (expected 2, got 1)

Вероятно, это происходит потому, что у первого экземпляра Billy нет '-' для разделения.

Если это так, то какой лучший способ обойти это?

Спасибо!

equanimity

Ответов: 1

Ответы (1)

Ваше условие неверно, должно быть:

for line in file:
    line = line.strip()

    # если нет пароля
    # если '-' нет в строке: <- другой вариант
    if ('-' in line) == False:
        продолжить

    # иначе читаем в словарь
    else:
        key, value = line.split('-')
        users[key] = value

или

for line in file:
    line = line.strip()

    # если есть пароль
    if '-' in line:
        key, value = line.split('-')
        users[key] = value

2022 WebDevInsider