Skip to main content

How to convert a dictionary to a CSV file in Python

How to convert a dictionary to a CSV file in Python.

Here's a step-by-step tutorial on how to convert a dictionary to a CSV file in Python.

Step 1: Import the necessary modules​

To work with CSV files, we need to import the csv module.

import csv

Step 2: Create a dictionary​

Create a dictionary that you want to convert to a CSV file. For this tutorial, let's create a simple dictionary with some sample data.

data = {'Name': ['John', 'Emma', 'Mike'],
'Age': [25, 28, 30],
'Country': ['USA', 'Canada', 'Australia']}

Step 3: Define the CSV file path​

Decide on the file path where you want to save the CSV file. For example, let's save it as 'data.csv' in the current working directory.

csv_file = 'data.csv'

Step 4: Open the CSV file in write mode​

Open the CSV file in write mode using the open() function and create a csv.writer object.

with open(csv_file, 'w', newline='') as file:
writer = csv.writer(file)

Step 5: Write the header row​

Write the header row to the CSV file using the writerow() method. The header row contains the keys from the dictionary.

header = data.keys()
writer.writerow(header)

Step 6: Write the data rows​

Iterate through the values in the dictionary and write each row to the CSV file using the writerow() method.

for row in zip(*data.values()):
writer.writerow(row)

Step 7: Complete the conversion​

Close the file after writing all the data rows to complete the conversion.

file.close()

Step 8: Verify the CSV file​

You can now open the generated CSV file ('data.csv') to verify the data.

Here's the complete code:

import csv

data = {'Name': ['John', 'Emma', 'Mike'],
'Age': [25, 28, 30],
'Country': ['USA', 'Canada', 'Australia']}

csv_file = 'data.csv'

with open(csv_file, 'w', newline='') as file:
writer = csv.writer(file)
header = data.keys()
writer.writerow(header)

for row in zip(*data.values()):
writer.writerow(row)

file.close()

That's it! You have successfully converted a dictionary to a CSV file in Python.