-1
내 프로그램에서 JSON에 문제가 있습니다. 파이썬에서 인터페이스로 객체를 만듭니다. 이 개체의 목록을 JSON에서 생성 한 파일에 저장하려고합니다.Python : JSON 목록에 객체 추가
JSON이 있습니다 :
[
{
"__class__": "Regle",
"apartirde": "",
"prefix": "",
"postfix": "",
"extension": "",
"amorce": "",
"nomfichier": ""
}
]
[
{
"__class__": "Regle",
"apartirde": "",
"prefix": "",
"postfix": "",
"extension": "",
"amorce": "",
"nomfichier": ""
}
]
그러나 나는 그런 일을합니다 :
[
{
"__class__": "Regle",
"apartirde": "",
"prefix": "",
"postfix": "",
"extension": "",
"amorce": "",
"nomfichier": ""
},
{
"__class__": "Regle",
"apartirde": "",
"prefix": "",
"postfix": "",
"extension": "",
"amorce": "",
"nomfichier": ""
}
]
나는이 목록을 읽고 싶어 할 때, JSON은 나에게이 오류 출력하기 때문에 :
을json.decoder.JSONDecodeError: Extra data:
쓰기 내 코드 편집 :
def seria(self, obj):
if isinstance(obj, class_Regle.Regle):
return {"__class__": "Regle",
"apartirde": obj.apartirde,
"prefix": obj.prefix,
"postfix": obj.postfix,
"extension": obj.extension,
"amorce": obj.amorce,
"nomfichier": obj.nomfichier}
raise TypeError(repr(obj) + " n'est pas sérialisable !")
def sauvegarder(self):
with open(self.fichier,'a', encoding='utf-8') as mon_fichier:
mon_fichier.json.dump(self.regle, mon_fichier, indent=4, default=self.seria)
내 코드 읽기 :
def charger(self):
with open(self.fichier, 'r', encoding="utf-8") as mon_fichier:
data =json.load(mon_fichier, object_hook=self.deseria)
def deseria(self, obj_dict):
if obj_dict["__class__"] == "Regle":
obj = class_Regle.Regle(obj_dict["apartirde"], obj_dict["prefix"],obj_dict["postfix"],obj_dict["extension"],obj_dict["amorce"],obj_dict["nomfichier"])
self.regle.append(obj)
관련 코드를 – Noa
@Noa 완료하십시오. – jojoboue
파일을 추가 모드로 여는 이유는 무엇입니까? json 파일을 원하는 것을 나타내는 객체 (이 경우 사전 목록)를 만든 후에 단일'json.dump'를 수행해야합니다. –