2014-09-05 1 views
2

파이썬에서 구현 된 __sleep() magic function (PHP)과 같은 것이 있는지 궁금합니다.파이썬에서 __sleep()과 같은 메소드

Python에서 JSON을 직렬화 할 수 없다고하는 클래스에 문제가 있습니다. 클래스의 마법 메서드에서 간단한 사전을 반환하여 내 라이브러리 중 하나에서 성공적으로 json.dumps을 호출 할 수 있습니다. . (내가 말했듯이, 직렬화를 수행하는 코드 라인을 라이브러리 내부에서 처리하지 못한다)

+0

원숭이가 패치를 적용하거나'json.dumps'에 전달되는'obj'에 영향을 줄 수 있습니까? –

+0

@SimeonVisser 네, 제가 만든 커스텀 오브젝트입니다. –

+0

라이브러리가 객체와 상호 작용해야합니까, 아니면 단지'json.dumps'합니까? 후자의 경우, 객체를 라이브러리에주기 바로 전에 덤프 할 수있는 객체로 객체를 변환 할 수 있습니다. –

답변

2

json.dumps()에 대한 호출을 제어 할 수 없다면이 작업은 까다로운 작업이다. 그렇게했다면 해결할 수있는 여러 가지 방법이 있습니다 (특히 서브 클래 싱 된 JSON 인코더에서 default 함수를 구현하는 경우).

경우에 따라 개체를 라이브러리로 전달하기 전에 개체를 serialize 가능한 형식으로 변환하는 것이 가장 좋습니다. 그러면 json.dumps()이 호출 될 때 입력 내용을 오류없이 직렬화 할 수 있습니다. 이것은 라이브러리가 객체와 상호 작용할 필요가 없으며 단순히 객체를 덤프한다고 가정합니다.

관련 문제