Ich habe ein Wörterbuch 'word_dictionary' in einer Datei gespeichert und kann im Hauptprogramm darauf zugreifen. Ich muss einen Benutzer veranlassen, einen Eintrag dem Wörterbuch hinzuzufügen. Aber ich bin nicht in der Lage den Eintrag im Wörterbuch ad acta zu speichern, und ich bekomme die Fehlermeldung:Aktualisieren eines auf eine Datei geschriebenen Wörterbuchs
Traceback (most recent call last):
File "/Users/Jess/Documents/Python/Coursework/Coursework.py", line 16, in <module>
word_dictionary= dict(shelf['word_dictionary'])
TypeError: 'NoneType' object is not iterable
Wenn der Code wieder um Schleifen - der Code funktioniert auf dem ersten Lauf.
Dies ist der Code, um das Wörterbuch zu aktualisieren, gemeint ist:
shelf = shelve.open("word_list.dat")
shelf[(new_txt_file)] = new_text_list
shelf['word_dictionary'] = (shelf['word_dictionary']).update({(new_dictionary_name):(new_dictionary_name)})
#not updating
shelf.sync()
shelf.close()
Und dies ist der Code, der nicht nach dem Update nicht abgeschlossen wird funktioniert (ich glaube nicht, das ist ein Teil von Das Problem, aber ich kann falsch liegen)
shelf = shelve.open("word_list.dat")
shelf.sync()
word_dictionary= dict(shelf['word_dictionary'])
Vielen Dank im Voraus für Ihre Hilfe und Geduld! UPDATE Dies ist der Beginn des Codes, wo ich word_dictionary nennen, die importiert wird:
while True:
shelf = shelve.open("word_list.dat")
print('{}'.format(shelf['word_dictionary']))
word_dictionary= dict(shelf['word_dictionary'])
print(word_dictionary)
word_keys = list(word_dictionary.keys())
shelf.close()
Dies ist, wie das ursprüngliche Wörterbuch ich hinzufügen möchte sitzt:
shelf['word_dictionary'] = {'Hope Words': 'hope_words', 'Merry Words': 'merry_words', 'Amazement Words': 'amazement_words'}
Ich bin mir nicht sicher, was Sie in 'Regal ['word_dictionary']' 'setzen? Sie scheinen das Shelf als Wert für sich selbst im zweiten Snippet festzulegen. – amirouche
Beide Snippets stammen aus einer anderen .py-Datei als die Datei mit der Liste, die ich dann in diese Datei importiere. In der Datei, wo es das Wörterbuch gebeizt ist: word_dictionary = { 'Hoffnung Wörter': 'hope_words', 'Merry Worte': 'merry_words', 'Amazement Wörter': 'amazement_words'} Ich setze word_dictionary zu Ich muss mich nicht jedes Mal im Rest des Codes auf das Regal beziehen. Es ist das erste Mal, dass ich Regale benutze. Bitte korrigiere mich, wenn das nicht nötig ist! – Jess