私は、Python3でオブジェクト指向プログラミングを学ぶためのシンプルな従業員システムに取り組んでいます。 私のスクリプトは期待通りに動作し、従業員辞書の保存と読み込みは除きます。 問題は私の辞書はこのコードの通常の辞書の原因ではありません: Employees[eid] = Employee(eName,eSalary,eAge)
私はこのデータベースをJSON Serializeableにしたいと思いますが、私はインターネット上でそれを見つけられませんでした。 (その基本TypeEroorけど...) https://gist.github.com/ShockvaWe/d82d89f767506c1ff682a4cc387d1597JSONシリアル化可能なPython3辞書スタイルオブジェクトマッピング
を、現在のコードで私のエラーメッセージは次のとおりです:
は、悲しいことに、スタックオーバーフローでシステムを追加するコードは、私は要旨に私のコードを貼り付けて私にガンを与えた 申し訳ありませんが、私は私のコードを貼り付けることを試みる私の2時間を無駄にするので私はmadを得る。編集および答えのためにありがとう。ここで
はコードです:その性質上
class Foo(object):
def __init__(self, arg):
self.arg = arg
d = {'key1': Foo('some arg')}
import json
print json.dumps(d)
を、Pythonのclass
インスタンスが直列化可能ではありません。ここで
## -*- 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")
質問に答えるには、投稿しているウェブサイトを侮辱しないでください。あなたの投稿をより丁寧に編集することをお勧めします。 –
質問を編集し、最後の段落を削除してください。その攻撃的であなたの質問に無関係です。もう一度編集してコードを挿入してください。あなたは知っています、多くの人々がこのサイトを使用し、よくフォーマットされた質問を書くことができます – ventiseis