Python 클래스는 기본적으로 JSON으로 직렬화할 수 없습니다. 다음 클래스를 고려하십시오.
class FileItem: def __init__(self, fname): self.fname = fname
이 클래스는 JSON으로 직접 직렬화할 수 없습니다.
>>> import json >>> x = FileItem('/foo/bar') >>> json.dumps(x) TypeError: Object of type 'FileItem' is not JSON serializable
이 문제를 해결하기 위한 한 가지 접근 방식은 직렬 변환기 메서드:
toJSON() 메서드
import json class Object: def toJSON(self): return json.dumps( self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
이 메서드를 사용하면 클래스를 직렬화할 수 있습니다.
me = Object() me.name = "Onur" me.age = 35 me.dog = Object() me.dog.name = "Apollo" print(me.toJSON())
이렇게 하면 다음 JSON이 출력됩니다.
{ "age": 35, "dog": { "name": "Apollo" }, "name": "Onur" }
추가 라이브러리
보다 포괄적인 솔루션을 위해 다음을 활용할 수 있습니다. orjson 라이브러리입니다.
위 내용은 사용자 정의 Python 클래스를 JSON으로 직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!