Bird
Raised Fist0
Pandasdata~20 mins

Reading JSON with read_json in Pandas - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
JSON Reading Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this code reading JSON string?
Given the JSON string representing a list of records, what will be the output DataFrame?
Pandas
import pandas as pd
json_str = '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]'
df = pd.read_json(json_str)
print(df)
A
   name  age
0  Alice   30
1    Bob   25
B
   0      1
0  name   age
1  Alice  30
2  Bob    25
C
   name  age
0  Alice  25
1  Bob    30
D
   age   name
0  30    Alice
1  25    Bob
Attempts:
2 left
💡 Hint
The JSON string is a list of dictionaries, so read_json will create a DataFrame with columns from keys.
❓ data_output
intermediate
1:30remaining
How many rows and columns does this DataFrame have?
Using pandas.read_json on this JSON string, what is the shape of the resulting DataFrame?
Pandas
import pandas as pd
json_str = '{"A": [1, 2, 3], "B": [4, 5, 6]}'
df = pd.read_json(json_str)
print(df.shape)
A(3, 2)
B(6, 1)
C(1, 6)
D(2, 3)
Attempts:
2 left
💡 Hint
The JSON string is a dictionary with keys as columns and lists as values for rows.
🔧 Debug
advanced
2:00remaining
What error does this code raise when reading JSON?
What error will this code raise when trying to read the JSON string?
Pandas
import pandas as pd
json_str = '{"name": "Alice", "age": 30'
df = pd.read_json(json_str)
AKeyError: 'age'
BTypeError: string indices must be integers
CValueError: Expected object or value
DJSONDecodeError: Unterminated string starting at: line 1 column 22 (char 21)
Attempts:
2 left
💡 Hint
Look carefully at the JSON string syntax.
🚀 Application
advanced
2:30remaining
Which option correctly reads nested JSON into a DataFrame?
Given this nested JSON string, which code correctly reads it into a flat DataFrame?
Pandas
json_str = '{"id": 1, "name": "Alice", "scores": {"math": 90, "english": 85}}'
Apd.json_normalize(pd.read_json(json_str))
Bpd.read_json(json_str)
Cpd.json_normalize({'id': 1, 'name': 'Alice', 'scores': {'math': 90, 'english': 85}})
Dpd.read_json(json_str, orient='records')
Attempts:
2 left
💡 Hint
Use json_normalize to flatten nested JSON structures.
🧠 Conceptual
expert
1:30remaining
What is the effect of the 'orient' parameter in pandas.read_json?
Which statement best describes the role of the 'orient' parameter in pandas.read_json?
AIt controls the encoding type used to read the JSON file.
BIt specifies the format of the JSON string to correctly parse rows and columns.
CIt determines whether to convert JSON keys to lowercase.
DIt sets the compression algorithm for reading JSON files.
Attempts:
2 left
💡 Hint
Think about how JSON data can be structured differently.

Practice

(1/5)
1. What does the pandas function read_json do?
easy
A. It loads JSON data into a pandas DataFrame for analysis.
B. It converts a DataFrame into a JSON string.
C. It saves a DataFrame as a CSV file.
D. It reads CSV files into a DataFrame.

Solution

  1. Step 1: Understand the purpose of read_json

    The function read_json is designed to load JSON formatted data into a pandas DataFrame.
  2. Step 2: Compare with other pandas functions

    Functions like to_json convert DataFrames to JSON, and read_csv reads CSV files, so they do not match the description.
  3. Final Answer:

    It loads JSON data into a pandas DataFrame for analysis. -> Option A
  4. Quick Check:

    read_json loads JSON to DataFrame = C [OK]
Hint: Remember: read_json reads JSON into DataFrame [OK]
Common Mistakes:
  • Confusing read_json with to_json
  • Thinking it reads CSV files
  • Assuming it saves data instead of loading
2. Which of the following is the correct syntax to read a JSON file named data.json using pandas?
easy
A. pd.read_json(data.json)
B. pd.read_json('data.json')
C. pd.readjson('data.json')
D. pd.read_json['data.json']

Solution

  1. Step 1: Check the function name and usage

    The correct pandas function is read_json with an underscore, called as a function with parentheses.
  2. Step 2: Validate the argument format

    The file name must be a string inside quotes, so 'data.json' is correct.
  3. Final Answer:

    pd.read_json('data.json') -> Option B
  4. Quick Check:

    Correct function call with string filename = B [OK]
Hint: Use parentheses and quotes for file name in read_json [OK]
Common Mistakes:
  • Missing quotes around filename
  • Using wrong function name like readjson
  • Using square brackets instead of parentheses
3. Given the JSON string '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]', what will be the output of pd.read_json(json_str) where json_str holds this string?
medium
A. An error because the JSON string is not a file path.
B. A Series object with the JSON string as a single entry.
C. A DataFrame with columns 'name' and 'age' and two rows for Alice and Bob.
D. A DataFrame with one column containing the entire JSON string.

Solution

  1. Step 1: Understand input format

    The JSON string is a list of objects, each with 'name' and 'age' keys, suitable for conversion to a DataFrame.
  2. Step 2: Behavior of pd.read_json on JSON string

    Passing a JSON string with list of dicts creates a DataFrame with columns matching keys and rows for each dict.
  3. Final Answer:

    A DataFrame with columns 'name' and 'age' and two rows for Alice and Bob. -> Option C
  4. Quick Check:

    List of dicts JSON string -> DataFrame rows and columns = A [OK]
Hint: List of dicts JSON string becomes DataFrame rows [OK]
Common Mistakes:
  • Expecting error for string input
  • Thinking it returns Series instead of DataFrame
  • Assuming entire JSON is one column
4. What is wrong with this code snippet?
import pandas as pd
json_data = '{"name": "Alice", "age": 30}\n{"name": "Bob", "age": 25}'
df = pd.read_json(json_data)
medium
A. The function read_json cannot read JSON strings.
B. The JSON string is invalid because it uses double quotes.
C. The variable json_data should be a file path, not a string.
D. The JSON string is multiline but lines=True is missing in read_json.

Solution

  1. Step 1: Identify JSON format

    The JSON string contains multiple JSON objects separated by newlines, which is a JSON lines format.
  2. Step 2: Check pandas parameter for JSON lines

    To read JSON lines, read_json requires lines=True to parse each line as a JSON object.
  3. Final Answer:

    The JSON string is multiline but lines=True is missing in read_json. -> Option D
  4. Quick Check:

    Multiline JSON needs lines=True in read_json = D [OK]
Hint: Use lines=True for newline-separated JSON objects [OK]
Common Mistakes:
  • Ignoring the need for lines=True with JSON lines
  • Thinking double quotes are invalid in JSON
  • Assuming read_json only reads files
5. You have a JSON file where data is stored as a dictionary of lists like this:
{"name": ["Alice", "Bob"], "age": [30, 25]}

Which read_json parameter should you use to correctly load this into a DataFrame?
hard
A. orient='columns'
B. orient='index'
C. orient='records'
D. orient='split'

Solution

  1. Step 1: Identify JSON structure

    The JSON is a dictionary with keys as column names and values as lists of column data, matching the 'columns' orientation.
  2. Step 2: Match pandas orient parameter

    Using orient='columns' tells pandas to interpret keys as columns and values as column data lists.
  3. Final Answer:

    orient='columns' -> Option A
  4. Quick Check:

    Dict of lists JSON needs orient='columns' = A [OK]
Hint: Use orient='columns' for dict of lists JSON format [OK]
Common Mistakes:
  • Using orient='records' which expects list of dicts
  • Using orient='index' which expects dict of dicts
  • Not specifying orient and getting wrong DataFrame
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