2014-12-08 2 views
-1

Я хочу преобразовать этот текстовый файл в словарь, но он не работает.Создание текстового файла в словаре PYTHON

eggs 5 
spam 3 
cool 2 
yolk 3 
milk 5 

def openspam(): 
    badwordsfile = open("FulaOrd0.txt","r", encoding="utf-8") 
    for words in badwordsfile: 
      d = {} 
      word, value = words.rstrip().split(None, 1) 
      d[word] = value 
    return d 

d = openspam() 

Когда я проверяю, что "d", находится в оболочке. Я получаю «{« молоко »: 5}. Я хочу получить« яйца »: 5,« спам »: 3,« круто »: 2,« желток »: 3,« молоко »: 5}

кто-нибудь увидеть, что я сделал не так?

+1

взгляд на то, где вы инициализации 'd' – DRC

+1

лишь небольшую критику : вы должны использовать 'with' вместо голого' open() '. Это именно то, что было создано [менеджерами контекста] (http://effbot.org/zone/python-with-statement.htm). –

ответ

5

Move d = {} вне цикла. в противном случае, вы стираете его содержимое во время каждой итерации.

def openspam(): 
    badwordsfile = open("FulaOrd0.txt","r", encoding="utf-8") 
    d = {} 
    for words in badwordsfile: 
      word, value = words.rstrip().split(None, 1) 
      d[word] = value 
    return d 

d = openspam() 
+0

ВЫ ГРИИС БЛАГОДАРИСЬ –

+0

@EdwardSikorski вы должны принять ответ Кевина, если он сработает для вас – Luigi

Смежные вопросы