source

동적 python 개체를 json으로 변환

lovecheck 2023. 3. 18. 08:45
반응형

동적 python 개체를 json으로 변환

동적 python 객체를 JSON으로 변환하는 방법을 알고 싶습니다.개체는 여러 수준의 개체 하위 개체를 가질 수 있어야 합니다.예를 들어 다음과 같습니다.

class C(): pass
class D(): pass

c = C()
c.dynProperty1 = "something"
c.dynProperty2 = { 1, 3, 5, 7, 9 }
c.d = D()
c.d.dynProperty3 = "d.something"

# ... convert c to json ...

이 코드를 사용해 보았습니다.

import json
 
class C(): pass
class D(): pass
 
c = C()
c.what = "now?"
c.now = "what?"
c.d = D()
c.d.what = "d.what"
 
json.dumps(c.__dict__)

에러가 나서TypeError: <__main__.D instance at 0x99237ec> is not JSON serializable.

클래스인 서브오브젝트가 자동으로 시리얼화되도록 하려면 어떻게 해야 합니까?__dict__?

를 지정합니다.default=파라미터:

json.dumps(c, default=lambda o: o.__dict__)
json.dumps(c.__dict__)

일반적인 JSON 오브젝트를 얻을 수 있습니다.

이 패키지를 사용해 보십시오. python-jsonpickle

임의 개체 그래프를 JSON으로 직렬화하기 위한 Python 라이브러리입니다.거의 모든 Python 객체를 JSON으로 변환할 수 있습니다.또한 오브젝트를 Python으로 재구성할 수 있습니다.

json.dumps는 매개 변수로 딕토닉을 예상합니다.예를 들면c, 아트리뷰트c.__dict__는 대응하는 오브젝트에 Atribute 이름을 사전에 매핑하는 것입니다.

언급URL : https://stackoverflow.com/questions/7408647/convert-dynamic-python-object-to-json

반응형