Bird
Raised Fist0
Flaskframework~10 mins

JSON response formatting in Flask - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to return a JSON response using Flask.

Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/')
def home():
    return [1]({'message': 'Hello, world!'})
Drag options to blanks, or click blank then click option'
Amake_response
Bjson
Crender_template
Djsonify
Attempts:
3 left
💡 Hint
Common Mistakes
Using json instead of jsonify causes errors.
Using render_template returns HTML, not JSON.
2fill in blank
medium

Complete the code to set the HTTP status code to 201 in the JSON response.

Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/create')
def create():
    return jsonify({'result': 'Created'}), [1]
Drag options to blanks, or click blank then click option'
A201
B200
C400
D404
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 means OK but not specifically created.
Using 400 or 404 means error, not success.
3fill in blank
hard

Fix the error in returning a JSON response with a custom header.

Flask
from flask import Flask, jsonify, make_response
app = Flask(__name__)

@app.route('/custom')
def custom():
    response = make_response(jsonify({'status': 'ok'}))
    response.headers['X-Custom-Header'] = [1]
    return response
Drag options to blanks, or click blank then click option'
ACustomValue
B'CustomValue'
C123
DNone
Attempts:
3 left
💡 Hint
Common Mistakes
Not using quotes causes a NameError.
Using None is invalid for header values.
4fill in blank
hard

Fill both blanks to return a JSON response with a 404 status and a custom error message.

Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/notfound')
def not_found():
    return jsonify({'error': [1]), [2]
Drag options to blanks, or click blank then click option'
A'Resource not found'
B404
C200
D'Success'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 status code for errors is incorrect.
Not quoting the error message causes syntax errors.
5fill in blank
hard

Fill all three blanks to create a JSON response with a nested dictionary, a 202 status code, and a custom header.

Flask
from flask import Flask, jsonify, make_response
app = Flask(__name__)

@app.route('/process')
def process():
    data = {'task': [1], 'status': 'processing'}
    response = make_response(jsonify(data), [2])
    response.headers['X-Task-ID'] = [3]
    return response
Drag options to blanks, or click blank then click option'
A'upload'
B202
C'12345'
D'done'
Attempts:
3 left
💡 Hint
Common Mistakes
Using numbers without quotes for strings causes errors.
Using wrong status codes changes response meaning.

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