J'essaie de créer un répertoire qui enregistre dans un fichier en python. voici l'extrait de code avec le problème:
import os
f = open("save")
forbidden = f.readline()
forbiddens = f.readline()
dictionary = f.readline()
stop = 0
global arguments
print("phonebook os by me")
def write():
global forbidden
global forbiddens
global dictionary
f = open("save")
f.write(forbidden and "n" and forbiddens and "n" and dictionary)
f.close()
def add_cc():
global forbidden
global dictionary
global arguments
name = arguments[1]
number = int(arguments[2])
if name in forbidden:
print("403: forbidden!")
elif name in dictionary:
print("406: Not acceptable! This item is already in the dictionary!")
else:
dictionary[name] = number
write()
start()
def del_cc():
global arguments
global dictionary
name = arguments[1]
del dictionary[name]
write()
start()
def get_cc():
global arguments
global forbidden
global dictionary
name = arguments[1]
if name in dictionary:
print(dictionary[name])
elif name in forbidden:
print("403: Forbidden!")
else:
print("404: Item not Found.")
start()
(le repos est trop long)
Le problème vient à dictionary[name] = number
ligne 12. l'erreur que je reçois est
dictionary[name] = number
TypeError: "str" object does not support item assignment
Est-ce que quelqu'un peut m'aider?
Réponses:
0 pour la réponse № 1Oui je peux vous aider :) .
Vérifiez votre code pour l'affectation à dictionary
. La variable dictionary
Ce n'est pas un dictionnaire, mais une chaîne, donc quelque part dans votre code sera quelque chose comme:
dictionary = " evaluates to string "
ou l'équivalent.
Vous en connaissez déjà le message d’erreur ci-dessus, mais cela ne semble pas vous aider à savoir quoi faire pour éviter l’erreur. Alors voici comment vous devez changer votre code, de sorte que l'erreur soit partie:
import os
f = open("save")
forbidden = f.readline()
forbiddens = f.readline()
dictionary = {} # now it is a dictionary not a string "{}"