Python: Python dictionary to a csv file and display the content
11. Dict to CSV and Read
Write a Python program to write a Python dictionary to a csv file. After writing the CSV file read the CSV file and display the content.
Sample Solution:
Python Code :
import csv
csv_columns = ['id','Column1', 'Column2', 'Column3', 'Column4', 'Column5']
dict_data = {'id':['1', '2', '3'],
'Column1':[33, 25, 56],
'Column2':[35, 30, 30],
'Column3':[21, 40, 55],
'Column4':[71, 25, 55],
'Column5':[10, 10, 40], }
csv_file = "temp.csv"
try:
with open(csv_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
for data in dict_data:
writer.writerow(dict_data)
except IOError:
print("I/O error")
data = csv.DictReader(open(csv_file))
print("CSV file as a dictionary:\n")
for row in data:
print(row)
temp.csv
"country_id"|"country_name"|"region_id"
"AR"|"Argentina"| 2
"AU"|"Australia"| 3
"BE"|"Belgium"| 1
"BR"|"Brazil"| 2
"CA"|"Canada"| 2
Sample Output:
CSV file as a dictionary: OrderedDict([('id', "['1', '2', '3']"), ('Column1', '[33, 25, 56]'), ('Column2', '[35, 30, 30]'), ('Column3', '[21, 40, 55]'), ('Column4', '[71, 25, 55]'), ('Column5', '[10, 10, 40]')]) OrderedDict([('id', "['1', '2', '3']"), ('Column1', '[33, 25, 56]'), ('Column2', '[35, 30, 30]'), ('Column3', '[21, 40, 55]'), ('Column4', '[71, 25, 55]'), ('Column5', '[10, 10, 40]')]) OrderedDict([('id', "['1', '2', '3']"), ('Column1', '[33, 25, 56]'), ('Column2', '[35, 30, 30]'), ('Column3', '[21, 40, 55]'), ('Column4', '[71, 25, 55]'), ('Column5', '[10, 10, 40]')]) OrderedDict([('id', "['1', '2', '3']"), ('Column1', '[33, 25, 56]'), ('Column2', '[35, 30, 30]'), ('Column3', '[21, 40, 55]'), ('Column4', '[71, 25, 55]'), ('Column5', '[10, 10, 40]')]) OrderedDict([('id', "['1', '2', '3']"), ('Column1', '[33, 25, 56]'), ('Column2', '[35, 30, 30]'), ('Column3', '[21, 40, 55]'), ('Column4', '[71, 25, 55]'), ('Column5', '[10, 10, 40]')]) OrderedDict([('id', "['1', '2', '3']"), ('Column1', '[33, 25, 56]'), ('Column2', '[35, 30, 30]'), ('Column3', '[21, 40, 55]'), ('Column4', '[71, 25, 55]'), ('Column5', '[10, 10, 40]')])
For more Practice: Solve these Related Problems:
- Write a Python program to write a dictionary to a CSV file where keys become column headers, then read the CSV file and print each row as a dictionary.
- Write a Python script to export a list of dictionaries to a CSV file and then read back the file to confirm that the header and rows match.
- Write a Python program to write a dictionary with multiple key-value pairs to a CSV file, and then verify the output by reading and printing the contents.
- Write a Python program to create a CSV file from a dictionary, then reopen the file and display its contents formatted as a table.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.