Object of type Decimal is not JSON serializable
-> (Decimal 유형의 객체는 JSON 직렬화가 가능하지 않습니다)
위 오류는 select 쿼리인 경우에, cursor에서 execute 후 cursor.fetchall()로 결과 리스트를 가져올 때 주로 발생했다.
결과리스트를 json 형식으로 클라이언트에게 보내야 하는데 그러기 위해선 데이터의 타입이 문자열이나 숫자여야 한다.
datetime 타입이거나 decimal 타입일 경우 문자열이나 숫자타입으로 변환해서 클라이언트에게 보내야 한다.
해결 방법)
i = 0
for row in result_list :
result_list[i]["year"] = row["year"].isoformat()
result_list[i]["review_avg"] = float(row["review_avg"])
i = i+1
-> isoformat()은 datetime타입을 문자열로 변환, float()은 decimal타입을 float 타입으로 변환해준다.
'Restful API' 카테고리의 다른 글
[Restful API] 이미지를 S3에 업로드하는 API 만들기 (0) | 2023.12.18 |
---|---|
[Restful API] 네이버 Papago API 사용해보기 (0) | 2023.12.18 |
[Restful API] Query String(Query Parameter) 페이징 처리하는 방법 (1) | 2023.12.08 |
[Restful API] 로그아웃 API 만드는 방법 (1) | 2023.12.07 |
[Restful API] 로그인한 유저만 처리할 수 있는 API에 토큰 적용하는 방법 (1) | 2023.12.07 |