[GH-ISSUE #939] TypeError: 'dict' object is not callable in 'example/apps.py #564

Closed
opened 2026-02-27 23:23:22 +03:00 by kerem · 0 comments
Owner

Originally created by @sitongye on GitHub (Feb 6, 2023).
Original GitHub issue: https://github.com/spotipy-dev/spotipy/issues/939

Describe the bug
TypeError: 'dict' object is not callable while running 'example/apps.py'

Your code
app.py

Expected behavior
should return dict like response

Output
Traceback (most recent call last)
File "/lib/python3.9/site-packages/flask/app.py", line 1974, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 26, in _run_wsgi_app
return _run_wsgi_app(*args)
File "lib/python3.9/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app
if exc_info is not None:
reraise(*exc_info)
response[:] = [status, headers]
return buffer.append

app_rv = app(environ, start_response)
close_func = getattr(app_rv, "close", None)
app_iter = iter(app_rv)

# when buffering we emit the close call early and convert the
# application iterator into a regular list

During handling of the above exception, another exception occurred:
File "lib/python3.9/site-packages/flask/app.py", line 2309, in call
return self.wsgi_app(environ, start_response)
File "lib/python3.9/site-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "python3.9/site-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "lib/python3.9/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/lib/python3.9/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "lib/python3.9/site-packages/flask/app.py", line 1816, in full_dispatch_request
return self.finalize_request(rv)
File "lib/python3.9/site-packages/flask/app.py", line 1831, in finalize_request
response = self.make_response(rv)
File "lib/python3.9/site-packages/flask/app.py", line 1982, in make_response
reraise(TypeError, new_error, sys.exc_info()[2])
File "lib/python3.9/site-packages/flask/_compat.py", line 34, in reraise
raise value.with_traceback(tb)
File "lib/python3.9/site-packages/flask/app.py", line 1974, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 26, in _run_wsgi_app
return _run_wsgi_app(*args)
File "lib/python3.9/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: 'dict' object is not callable
The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.

Environment:
async-timeout==4.0.2
cachelib==0.10.2
certifi==2019.3.9
chardet==3.0.4
charset-normalizer==3.0.1
Click==7.0
Flask==1.0.2Flask-Session==0.4.0
idna==2.8
itsdangerous==1.1.0
Jinja2==2.11.3
MarkupSafe==2.0.1
python-dotenv==0.21.1
redis==4.4.2
requests==2.28.2
six==1.16.0
spotipy==2.22.1
urllib3==1.26.14
Werkzeug==0.15.5

Additional context
soltuion:
''
from flask import jsonify
''
"jsonify" whenever a dict is returned
for example:
``
@app.route('/playlists')
def playlists():
cache_handler = spotipy.cache_handler.FlaskSessionCacheHandler(session)
auth_manager = spotipy.oauth2.SpotifyOAuth(cache_handler=cache_handler)
if not auth_manager.validate_token(cache_handler.get_cached_token()):
return redirect('/')

spotify = spotipy.Spotify(auth_manager=auth_manager)
return jsonify(spotify.current_user_playlists())

''

Originally created by @sitongye on GitHub (Feb 6, 2023). Original GitHub issue: https://github.com/spotipy-dev/spotipy/issues/939 **Describe the bug** TypeError: 'dict' object is not callable while running 'example/apps.py' **Your code** app.py **Expected behavior** should return dict like response **Output** Traceback (most recent call last) File "/lib/python3.9/site-packages/flask/app.py", line 1974, in make_response rv = self.response_class.force_type(rv, request.environ) File "/lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type response = BaseResponse(*_run_wsgi_app(response, environ)) File "lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 26, in _run_wsgi_app return _run_wsgi_app(*args) File "lib/python3.9/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app if exc_info is not None: reraise(*exc_info) response[:] = [status, headers] return buffer.append app_rv = app(environ, start_response) close_func = getattr(app_rv, "close", None) app_iter = iter(app_rv) # when buffering we emit the close call early and convert the # application iterator into a regular list During handling of the above exception, another exception occurred: File "lib/python3.9/site-packages/flask/app.py", line 2309, in __call__ return self.wsgi_app(environ, start_response) File "lib/python3.9/site-packages/flask/app.py", line 2295, in wsgi_app response = self.handle_exception(e) File "python3.9/site-packages/flask/app.py", line 1741, in handle_exception reraise(exc_type, exc_value, tb) File "lib/python3.9/site-packages/flask/_compat.py", line 35, in reraise raise value File "/lib/python3.9/site-packages/flask/app.py", line 2292, in wsgi_app response = self.full_dispatch_request() File "lib/python3.9/site-packages/flask/app.py", line 1816, in full_dispatch_request return self.finalize_request(rv) File "lib/python3.9/site-packages/flask/app.py", line 1831, in finalize_request response = self.make_response(rv) File "lib/python3.9/site-packages/flask/app.py", line 1982, in make_response reraise(TypeError, new_error, sys.exc_info()[2]) File "lib/python3.9/site-packages/flask/_compat.py", line 34, in reraise raise value.with_traceback(tb) File "lib/python3.9/site-packages/flask/app.py", line 1974, in make_response rv = self.response_class.force_type(rv, request.environ) File "lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type response = BaseResponse(*_run_wsgi_app(response, environ)) File "lib/python3.9/site-packages/werkzeug/wrappers/base_response.py", line 26, in _run_wsgi_app return _run_wsgi_app(*args) File "lib/python3.9/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app app_rv = app(environ, start_response) TypeError: 'dict' object is not callable The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict. **Environment:** async-timeout==4.0.2 cachelib==0.10.2 certifi==2019.3.9 chardet==3.0.4 charset-normalizer==3.0.1 Click==7.0 Flask==1.0.2Flask-Session==0.4.0 idna==2.8 itsdangerous==1.1.0 Jinja2==2.11.3 MarkupSafe==2.0.1 python-dotenv==0.21.1 redis==4.4.2 requests==2.28.2 six==1.16.0 spotipy==2.22.1 urllib3==1.26.14 Werkzeug==0.15.5 **Additional context** soltuion: '' from flask import jsonify '' "jsonify" whenever a dict is returned for example: `` @app.route('/playlists') def playlists(): cache_handler = spotipy.cache_handler.FlaskSessionCacheHandler(session) auth_manager = spotipy.oauth2.SpotifyOAuth(cache_handler=cache_handler) if not auth_manager.validate_token(cache_handler.get_cached_token()): return redirect('/') spotify = spotipy.Spotify(auth_manager=auth_manager) return jsonify(spotify.current_user_playlists()) ''
kerem 2026-02-27 23:23:22 +03:00
  • closed this issue
  • added the
    bug
    label
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/spotipy#564
No description provided.