-> TypeError: Object of type datetime is not JSON serializable 에러
발생한 이유)
cursor.fetchall()로 받아온 데이터를 확인하면 datetime 타입으로 된 데이터가 있다. 클라이언트에게 json 형식으로 보내줘야 한다. json은 문자열이나 숫자만 들어갈 수 있는데, datetime 타입인 데이터가 있기 때문에 발생한 에러이다.
해결법)
cursor = connection.cursor(dictionary=True)
-> fetchall() 함수의 인자 dictionary = True를 넣어줘서 데이터를 리스트와 딕셔너리의 형식으로 받아온 후
i = 0
for row in result_list :
result_list[i]["created_at"] = row["created_at"].isoformat()
result_list[i]["updated_at"] = row["updated_at"].isoformat()
i = i+1
-> datetime 타입을 문자열로 바꾸는 함수인 isoformat()과 for문을 이용해 datetime 타입인 데이터를 문자열로 바꿔준다.
-> status code 200과 함께 잘 동작된 모습이다.
'Restful API' 카테고리의 다른 글
[Restful API] MySQL Connector 라이브러리 사용 중에, %s에 매칭되는 데이터가 1개인 경우 (0) | 2023.12.06 |
---|---|
[Restful API] Rest API 개발 중, 경로에 숫자나 문자의 값이 변경 될 수 있는 경우의 처리 방법 (0) | 2023.12.06 |
[Restful API] Python MySQL Connector를 이용해 select 하는 방법 (1) | 2023.12.06 |
[Restful API] Python MySQL Connector를 이용해 insert 하는 방법 (1) | 2023.12.06 |
[Restful API] python flask에서 Resource 클래스를 이용한 API 서버 개발 (1) | 2023.12.05 |