Voi face o aplicație care ar permite să fie conectați-vă sau creați un restaurant. Ca un proprietar de restaurant, puteți adăuga/elimina/edita frigidere. Țelul meu este că nu aș avea o listă de Restaurante care aș scrie un fișier JSON, și oricând rulați din nou aplicația, pot trage datele în și simula "fiind un proprietar de restaurant" și editați frigidere pentru restaurantul ales.
În esență doresc acest lucru:
data = {
restaurants: [
{
restaurant: {
name: "Peppy",
pw: "123",
fridges: [
{
fridge: {
owner: restaurant.name,
contents: []
}
}
]
}
}
]
}
Am următoarele două clase(arată metode relevante):
class Restaurant:
def __init__(self, owner, password):
self.__password = password
self.owner = owner
self.__owned_fridges = [] # list of owned fridges
def add_fridge(self):
nickname = input("What would you like to name the fridge: ")
self.__owned_fridges.append(fr(self.owner, nickname))
print("Fridge added!")
class Fridge:
def __init__(self, owner, nickname):
self.nickname = nickname
self.owner = owner
self.__authorized_users = [owner]
self.__contents = []
def add_to_fridge(self):
if len(self.__contents) == 5:
print("Your fridge is full!")
else:
item = input("What would you like to add : ")
self.__contents.append(item)
Problema mea este în serializarea asta pentru JSON. Am constatat că următoarele lucrări pentru a serializa restaurant obiect JSON, dar nu imbricate frigider obiecte :
data = {
'restaurants': []
}
# Testing code
test = res("Jac", "350b534")
test.add_fridge()
test.add_fridge()
data['restaurants'].append(json.dumps(test.__dict__))
Eu sunt relativ nou pentru python, și eu vin dintr-un js de fundal, așa că eu sunt încă obtinerea familiarizat cu sintaxa. Intrebarea mea este, cum pot serializa interior listă de frigidere?