Bird
Raised Fist0
Flaskframework~20 mins

JSON response formatting in Flask - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
JSON Response Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What does this Flask route return as JSON?
Consider this Flask route code. What JSON response will the client receive when accessing /data?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/data')
def data():
    return jsonify({'name': 'Alice', 'age': 30})
A'{"name": "Alice", "age": 30}'
B["name", "Alice", "age", 30]
C{"name": "Alice", "age": 30}
D{name: Alice, age: 30}
Attempts:
2 left
💡 Hint
Remember that jsonify converts Python dicts to JSON strings with double quotes.
📝 Syntax
intermediate
2:00remaining
Which option causes a syntax error in Flask JSON response?
Which Flask route code snippet will cause a syntax error when returning JSON?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/test')
def test():
    # Choose the problematic return statement
Areturn jsonify({'valid': True})
Breturn jsonify({'missing_quote: True})
Creturn jsonify({'number': 123})
Dreturn jsonify({'list': [1, 2, 3]})
Attempts:
2 left
💡 Hint
Look for missing or mismatched quotes in the dictionary keys or values.
❓ state_output
advanced
2:00remaining
What is the JSON output of this Flask route with nested data?
Given this Flask route, what JSON does it return?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/nested')
def nested():
    data = {'user': {'id': 1, 'name': 'Bob'}, 'active': True}
    return jsonify(data)
A{"user": {"id": 1, "name": "Bob"}, "active": "true"}
B{"user": {"id": "1", "name": "Bob"}, "active": "True"}
C{"user": [1, "Bob"], "active": true}
D{"user": {"id": 1, "name": "Bob"}, "active": true}
Attempts:
2 left
💡 Hint
Boolean values in JSON are lowercase true/false, not strings.
🔧 Debug
advanced
2:00remaining
Why does this Flask JSON response raise a TypeError?
This Flask route raises a TypeError when returning JSON. Why?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

class Custom:
    pass

@app.route('/error')
def error():
    obj = Custom()
    return jsonify({'obj': obj})
ACustom object is not JSON serializable
BMissing return statement
CFlask app not initialized
Djsonify requires a list, not dict
Attempts:
2 left
💡 Hint
Think about what types jsonify can convert to JSON.
🧠 Conceptual
expert
2:00remaining
Which option correctly sets a custom HTTP status code with JSON response in Flask?
You want to return JSON data with a 201 Created status code. Which Flask return statement is correct?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/create')
def create():
    data = {'message': 'Created successfully'}
Areturn jsonify(data), 201
Breturn jsonify(data, status=201)
Creturn jsonify(data).status_code(201)
Dreturn jsonify(data).with_status(201)
Attempts:
2 left
💡 Hint
Flask allows returning a tuple with response and status code.

Practice

(1/5)
1. What is the main purpose of using jsonify() in a Flask app?
easy
A. To connect to a database
B. To create HTML pages dynamically
C. To handle user authentication
D. To format Python data as a JSON response easily

Solution

  1. Step 1: Understand the role of jsonify()

    The jsonify() function converts Python data structures into JSON format for HTTP responses.
  2. Step 2: Identify the correct purpose

    It is not used for HTML, database, or authentication tasks but specifically for JSON response formatting.
  3. Final Answer:

    To format Python data as a JSON response easily -> Option D
  4. Quick Check:

    jsonify() formats data as JSON [OK]
Hint: jsonify() turns Python data into JSON response fast [OK]
Common Mistakes:
  • Thinking jsonify() creates HTML pages
  • Confusing jsonify() with database functions
  • Assuming jsonify() handles user login
2. Which of the following is the correct way to return a JSON response in Flask?
easy
A. return jsonify({'key': 'value'})
B. return json.dumps({'key': 'value'})
C. return render_template('data.json')
D. return Response({'key': 'value'})

Solution

  1. Step 1: Review Flask JSON response syntax

    Flask provides jsonify() to return JSON responses with correct headers automatically.
  2. Step 2: Compare options

    return json.dumps({'key': 'value'}) returns a string without proper headers, C returns a template, D uses Response incorrectly.
  3. Final Answer:

    return jsonify({'key': 'value'}) -> Option A
  4. Quick Check:

    Use jsonify() to return JSON response [OK]
Hint: Use jsonify() to return JSON with correct headers [OK]
Common Mistakes:
  • Using json.dumps() without setting content-type
  • Returning templates instead of JSON
  • Using Response without JSON serialization
3. What will be the output of this Flask route?
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/data')
def data():
    info = {'name': 'Alice', 'age': 30}
    return jsonify(info)
medium
A. A Python dictionary printed as string
B. An HTML page showing the dictionary
C. A JSON response: {"name": "Alice", "age": 30}
D. A server error due to missing return type

Solution

  1. Step 1: Analyze the route function

    The function returns jsonify(info), which sends a JSON response with the dictionary data.
  2. Step 2: Understand jsonify output

    jsonify converts the dict to JSON string and sets content-type to application/json.
  3. Final Answer:

    A JSON response: {"name": "Alice", "age": 30} -> Option C
  4. Quick Check:

    jsonify returns JSON response [OK]
Hint: jsonify() returns JSON string with headers, not plain dict [OK]
Common Mistakes:
  • Expecting Python dict printed as string
  • Thinking it returns HTML
  • Assuming server error without return type
4. Identify the error in this Flask code snippet:
from flask import Flask, jsonify
import json
app = Flask(__name__)

@app.route('/info')
def info():
    data = {'status': 'ok'}
    return json.dumps(data)
medium
A. Route decorator syntax is wrong
B. json.dumps() returns a string without proper response headers
C. Flask app is not created correctly
D. jsonify() is missing import

Solution

  1. Step 1: Check the return statement

    The code returns json.dumps(data), which is a JSON string but lacks HTTP headers for JSON content.
  2. Step 2: Understand Flask JSON response best practice

    Using jsonify() sets content-type headers correctly; returning json.dumps() alone can cause client issues.
  3. Final Answer:

    json.dumps() returns a string without proper response headers -> Option B
  4. Quick Check:

    json.dumps() lacks JSON headers [OK]
Hint: Use jsonify(), not json.dumps(), to send JSON response [OK]
Common Mistakes:
  • Returning json.dumps() string without headers
  • Forgetting to import jsonify
  • Misusing route decorator
5. You want to return a JSON response with a custom status code 201 and a message. Which is the correct way to do this in Flask?
hard
A. return jsonify({'message': 'Created'}), 201
B. return Response(json.dumps({'message': 'Created'}), status=201)
C. return jsonify({'message': 'Created', 'status': 201})
D. return {'message': 'Created'}, 201

Solution

  1. Step 1: Understand how to set status code with jsonify

    Flask allows returning a tuple with (response, status_code) where response can be jsonify output.
  2. Step 2: Evaluate options

    return jsonify({'message': 'Created'}), 201 correctly returns jsonify with status 201. return Response(json.dumps({'message': 'Created'}), status=201) misses content-type headers. return jsonify({'message': 'Created', 'status': 201}) puts status inside JSON data, not HTTP status. return {'message': 'Created'}, 201 returns dict without jsonify.
  3. Final Answer:

    return jsonify({'message': 'Created'}), 201 -> Option A
  4. Quick Check:

    Use jsonify() with status code tuple [OK]
Hint: Return (jsonify(data), status_code) to set HTTP status [OK]
Common Mistakes:
  • Putting status code inside JSON data
  • Using Response without headers
  • Returning dict without jsonify
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard