오류

TypeError: Object of type date is not JSON serializable

공부짱짱열심히하기 2023. 3. 11. 18:53
class FoodRecordbreakfastResource(Resource):
    @jwt_required()
    def get(self) :
        date_str = request.args.get('date')
        date = datetime.strptime(date_str, '%Y-%m-%d').date()
        user_id = get_jwt_identity()

        try:
            connection = get_connection()

            query = f'''SELECT *
                    FROM foodRecord
                    WHERE mealtime = 1 AND date = '{date}' AND userId = {user_id};'''

            cursor = connection.cursor(dictionary=True)
            cursor.execute(query)

            result_list = cursor.fetchall()

            cursor.close()
            connection.close()

        except Error as e:
            print(e)
            cursor.close()
            connection.close()
            return {"error": str(e)}, 500

        return {"result": "success",
                "items": result_list,
                "count": len(result_list)}, 200

datetime.date 타입은 기본적으로 JSON 직렬화가 불가능합니다. 따라서, json.dumps()를 사용하여 JSON 직렬화할 때 default 매개변수를 지정해줘야 합니다.

예를 들어, datetime.date를 문자열로 직렬화하려면 default 매개변수에 str() 함수를 지정하면 됩니다.

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------

        return {"result": "success",
                "items": json.loads(json.dumps(result_list, default=str)),
                "count": len(result_list)}, 200