pythonflaskflask-restful

TypeError: <Response 36 bytes [200 OK]> is not JSON serializable


I am writing web service using restful flask. The below code giving me this error - TypeError: is not JSON serializable

from flask import jsonify
from flask_restful import Resource
class Recipe(Resource):
   def get(self):
      return jsonify({"status": "ok", "data": ""}), 200

How ever this code is working fine

from flask import jsonify
from flask_restful import Resource
class Recipe(Resource):
   def get(self):
      return jsonify({"status": "ok", "data": ""})

The Below code is also working

from flask import jsonify
from flask_restful import Resource
class Recipe(Resource):
def get(self):
   return {"status": "ok", "data": ""},200

I have noticed that I get the error when I use jsonify and response code together, I need to use jsonfy because I will be sending object as response.


Solution

  • Got the solution - Flask has this function called make_response

    from flask import jsonify, make_response
    
    class Recipe(Resource):
       def get(self):
       return make_response(jsonify({"status": "ok", "data": ""}), 201)