If you’ve ever worked with data, you’ve probably encountered JSON (JavaScript Object Notation) and CSV (Comma-Separated Values) formats. JSON is a popular format for data exchange, particularly with web APIs, while CSV is a common format for data storage and manipulation in spreadsheets. In this guide, we'll walk you through the process of converting JSON to CSV using Python, even if you're just starting out.

Step 1: Install Required Libraries

First, ensure you have Python installed on your computer. If not, download and install it from Python's official website. Next, you'll need to install the pandas library, which is a powerful data manipulation tool. Open your terminal or command prompt and run:

pip install pandas

Step 2: Import Libraries

Once you have pandas installed, open a Python script or an interactive environment like Jupyter Notebook and import the necessary libraries:

import json
import pandas as pd

Step 3: Load Your JSON Data

If your JSON data is stored in a file, load it using Python’s built-in json library. Here’s how you can load JSON data from a file named data.json:

with open('data.json') as file:
    json_data = json.load(file)

If your JSON data is a string, you can load it directly:

json_data = json.loads('{"key": "value", "key2": "value2"}')

Step 4: Normalize JSON Data (if necessary)

JSON data can be nested, meaning you might have dictionaries within dictionaries. To flatten this structure into a CSV-compatible format, use pandas.json_normalize:

df = pd.json_normalize(json_data)

Step 5: Convert to CSV

Now, you can easily convert the DataFrame into a CSV file:

df.to_csv('output.csv', index=False)

This will create a file named output.csv in your working directory with the JSON data in CSV format.

Step 6: Verify the Output

To ensure your conversion worked correctly, open output.csv in any spreadsheet program (like Excel or Google Sheets) and verify that the data is structured as expected.

Example: Full Script

Here’s how the entire process looks in one script:

import json
import pandas as pd

# Load JSON data from a file
with open('data.json') as file:
    json_data = json.load(file)

# Normalize and convert to CSV
df = pd.json_normalize(json_data)
df.to_csv('output.csv', index=False)

Conclusion

Converting JSON to CSV using Python is straightforward, especially with the help of libraries like pandas. Whether you're dealing with simple or nested JSON data, Python provides the tools you need to efficiently manage and convert your data into a format that’s easy to analyze and work with in spreadsheets. Happy coding!

Simon

102 Articles

I love talking about tech.