>백엔드 개발 >파이썬 튜토리얼 >SQLAlchemy ORM 개체를 JSON으로 직렬화하는 방법은 무엇입니까?

SQLAlchemy ORM 개체를 JSON으로 직렬화하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-01 05:59:13205검색

How to Serialize SQLAlchemy ORM Objects to JSON?

SQLAlchemy ORM 개체를 JSON으로 변환

SQLAlchemy 쿼리 결과를 JSON 형식으로 직렬화하는 것은 웹 애플리케이션 작업 시 일반적인 작업일 수 있습니다. Django는 자동화된 직렬화를 제공하지만 SQLAlchemy에는 기본 직렬화 기능이 없습니다.

초기 시도 및 오류

jsonpickle.encode 및 json.dumps를 사용하여 직렬화하려고 했습니다. SQLAlchemy 개체를 실행했지만 다음 오류가 발생했습니다.

TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable

해결책: 객체 직렬화 사용자 정의

직렬화 문제를 극복하려면 객체를 사전으로 변환하는 사용자 정의 클래스 메소드를 생성할 수 있습니다.

class User:
    def as_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}

이 as_dict() 메소드는 다음의 사전 표현을 동적으로 생성합니다. 테이블 열을 반복하여 객체를 삭제합니다. 그런 다음 User.as_dict()를 사용하여 개체를 직렬화하고 이를 JSON 인코딩으로 전달할 수 있습니다.

추가 리소스

SQLAlchemy 개체를 사전으로 변환하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요. :

  • [SQLAlchemy 행 객체를 Python으로 변환하는 방법 dict?](https://stackoverflow.com/questions/38425453/how-to-convert-sqlalchemy-row-object-to-a-python-dict)에서는 SQLAlchemy 개체에서 사전을 생성하는 대체 접근 방식을 설명합니다.

결론

커스텀 직렬화 방식을 구현하면 SQLAlchemy 쿼리 결과를 성공적으로 변환할 수 있다 JSON 형식으로 변환하여 JQGrid와 같은 JavaScript 데이터 그리드의 데이터를 사용할 수 있습니다.

위 내용은 SQLAlchemy ORM 개체를 JSON으로 직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.