Ujvala bhumireddy
Ujvala bhumireddy

Reputation: 23

API request from UI is giving "Provided data is not of type bytes" when i switched to python3

While migrating code from python2.7 to 3.7, I am facing below issue. When I hit any request from UI like below.

enter image description here

When I look into the logs. I am able to print response json prior to return statement followed by 500 error. Below is my code snippet.

@app.route('/policy_count',methods=['GET'])
def wanhealth_policies()
    response = {'total': 25, 'offset':10}
    response = jsonify(status='success', result=response)
    print("RESPONSE:::::::::",response)
    return response

ERROR:webapp_sa_wh:Exception on /policy_count [GET]
Traceback (most recent call last):
File "home/ENV/lib/python3.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "home/ENV/lib/python3.7/site-packages/flask/app.py", line 1479, in full_dispatch_request
response = self.process_response(response)
File "home/ENV/lib/python3.7/site-packages/flask/app.py", line 1693, in process_response
self.save_session(ctx.session, response)
File "home/ENV/lib/python3.7/site-packages/flask/app.py", line 837, in save_session
return self.session_interface.save_session(self, session, response) File "home/ENV/lib/python3.7/site-packages/flask_kvsession/init.py", line 193, in save_session
store.put(session.sid_s, data, ttl)
File "home/ENV/lib/python3.7/site-packages/simplekv/decorator.py", line 87, in put
self._dstore.put(self._map_key(key), *args, **kwargs))
File "home/ENV/lib/python3.7/site-packages/simplekv/init.py", line 424, in put
raise IOError("Provided data is not of type bytes")
OSError: Provided data is not of type bytes
WARNING:root:Sending error response: , data: b'{"error": "Provided data is not of type bytes", "status_code": 500}'

OSError: Provided data is not of type bytes WARNING:root:Sending error response: , data: b'{"error": "Provided data is not of type bytes", "status_code": 500}' {address space usage: 581894144 bytes/554MB} {rss usage: 120606720 bytes/115MB} [pid: 6936|app: 0|req: 1/1] 10.2.0.1 () {60 vars in 1391 bytes} [Thu Mar 26 12:28:45 2020] GET /policy_count => generated 67 bytes in 452 msecs (HTTP/1.1 500) 2 headers in 90 bytes (1 switches on core 0)

Upvotes: 1

Views: 368

Answers (1)

Anith Ashok
Anith Ashok

Reputation: 46

I faced a similar issue when I was migrating from Python 2.7 to Python 3.7 for a Flask Application. Flask-KVSession uses simplekv python package for storing session data on a variety of backend, and for version Flask-KVSession=0.6.2, the existing installed simplekv was not fully compatible with Python 3. Installing simplekv==0.9.3 after installing Flask-KVSession resolved the issue.

Upvotes: 1

Related Questions