j'ai créé un dictionnaire, et rempli d'un fichier, comme ceci:programme Python dictionnaire traiter comme une chaîne
filedusers = {} # cheap way to keep track of users, not for production
FILE = open(r"G:\School\CS442\users.txt", "r")
filedusers = ast.literal_eval("\"{" + FILE.readline().strip() + "}\"")
FILE.close()
puis plus tard, je l'ai fait un test, comme ceci:
if not filedusers.get(words[0]):
où words[0]
est une chaîne pour un nom d'utilisateur, mais je reçois l'erreur suivante:
'str' object has no attribute 'get'
mais je ALRE vérifié Après le FILE.close()
j'ai eu un dictionnaire, et il avait les valeurs correctes dedans.
Une idée de ce qui se passe?
Une meilleure façon de sérialiser serait d'utiliser JSON: import json; json.FILE.write (json.dumps (filedusers)) - eval est la racine de toutes sortes de mal –
@Mikko, merci, c'est juste de faire quelque chose de base afin que je puisse travailler sur le code important, aucune chance d'utiliser ce pour la production. –
Mais je peux garantir que json fonctionne et il fait partie de stdlib depuis Python 2.6 :) –