Je travaille sur un système d'employé simple pour apprendre la programmation orientée objet en Python3. Mon script fonctionne comme prévu, à l'exception de l'enregistrement et du chargement du dictionnaire de l'employé. Le problème est mon dictionnaire n'est pas un dictionnaire normal cause de ce code: Employees[eid] = Employee(eName,eSalary,eAge)
Je veux faire de cette base de données JSON Serializeable mais je n'ai aucune idée ni je l'ai trouvé sur internet.Mappage d'objets de style de dictionnaire Python3 vers sérialisable JSON
Malheureusement le code ajoutant système débordement de pile m'a donné le cancer donc je collais mon code essentiel: https://gist.github.com/ShockvaWe/d82d89f767506c1ff682a4cc387d1597
Et mon message d'erreur avec le code actuel est (son TypeEroor de base, mais ...): Désolé, mais Je gaspille mes 2 heures en essayant de coller mon code et j'échoue donc je me fâche. Merci pour l'édition et les réponses.
Voici le code:
## -*- coding=<utf-8> -*-
import json
from json import JSONEncoder
Employees = {}
print(type(Employees))
class Employee(object):
'Common base for all employes'
empCount = 0
def __init__(self,name,salary,age):
self.name = name
self.salary = salary
self.age = age
Employee.empCount += 1
def displayCount(self):
print ("Total Employee : " , Employee.empCount , "\n")
def displayEmployee(self):
print("Name : ", self.name ," Salary : " , self.salary ," Age : " , self.age, "\n")
print ("NEVER FORGET TO SAVE YOUR CHANGES ! \n")
print ("Press s to save your work ! \n")
print ("Press l to load database. \n")
print ("Press x for adding employee \n")
print ("Press y for show employee count \n")
print ("Press z for display employee \n")
print ("Press q for quitting. \n")
while True :
st = input("->> : ")
if (st == "x"):
eid = input ("Id : ")
eName = input ("\nName : ")
eSalary = input ("\nSalary : ")
eAge = input ("\nAge : \n")
Employees[eid] = Employee(eName,eSalary,eAge)
if (st == "y"):
print("Total Employee Count : " , Employee.empCount)
if (st == "z"):
wantedId = input("Give the id : ")
Employees[wantedId].displayEmployee()
if (st == "q"):
exit()
if (st == "s"):
with open('myfile.json','w') as f:
json.dump(dict(Employees),f)
if (st == "l"):
with open('myfile.json') as f:
Employees = json.load(f)
if (st == 'f'):
print("roger dodger")
Si vous souhaitez obtenir une réponse à votre question, vous ne devriez probablement pas insulter le site Web sur lequel vous l'affichez. Je conseillerais d'éditer votre message pour être plus poli. –
S'il vous plaît modifier votre question et supprimer le dernier paragraphe. Son offensive et sans rapport avec votre question. Essayez de l'éditer à nouveau et incluez votre code. Vous savez, beaucoup de gens utilisent ce site et peuvent écrire des questions bien formatées – ventiseis