Dataford
Interview QuestionsInterview GuidesExperiencesCoaching
New
Pricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackCoaching1:1 coaching with people at your target companiesSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Flatten Nested JSON to CSV
00:00
5 left

Flatten Nested JSON to CSV

HardPython

Problem

Quest Global data pipelines receive JSON records with nested objects and arrays. Implement a function that flattens the records into CSV-ready rows, using dot notation for nested object keys and indexed notation for array elements.

Formal Specification

Implement flatten_json(data). The input is either a JSON object represented by a Python dictionary or a JSON array represented by a list of dictionaries. Each top-level dictionary becomes one output row. Nested dictionary keys must use dot notation, such as asset.id. Array elements must use zero-based indexed keys, such as measurements[0]. Scalar values remain unchanged. Empty objects and arrays should produce no additional fields.

Return a list of dictionaries. The output rows must contain every flattened key found in any input record. Missing values must be represented by None, and keys in each row must appear in deterministic alphabetical order when iterated.

A caller can write the returned rows with Python's csv.DictWriter, using the union of all output keys as the CSV header.

Constraints

  • 1 <= number of records <= 10^4
  • Maximum nesting depth is 50
  • Keys are non-empty strings without dots or brackets
  • Values are valid JSON values

Function Signature

def flatten_json(data):
Interviewer

Your question is Flatten Nested JSON to CSV. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
Sign up free to run your codeLog inLn 2
Run your code to see test output here.