Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 490
Codeformer Avatar asked Dec 25 '16 06:12

Codeformer


1 Answers

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)
like image 158
Codeformer Avatar answered Sep 20 '22 17:09

Codeformer