Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I create a CSV file from database in Python?

I have a Sqlite 3 and/or MySQL table named "clients"..

Using python 2.6, How do I create a csv file named Clients100914.csv with headers? excel dialect...

The Sql execute: select * only gives table data, but I would like complete table with headers.

How do I create a record set to get table headers. The table headers should come directly from sql not written in python.

w = csv.writer(open(Fn,'wb'),dialect='excel') #w.writelines("header_row") #Fetch into sqld w.writerows(sqld) 

This code leaves me with file open and no headers. Also cant get figure out how to use file as log.

like image 505
Merlin Avatar asked Sep 14 '10 15:09

Merlin


1 Answers

import csv import sqlite3  from glob import glob; from os.path import expanduser conn = sqlite3.connect( # open "places.sqlite" from one of the Firefox profiles     glob(expanduser('~/.mozilla/firefox/*/places.sqlite'))[0] ) cursor = conn.cursor() cursor.execute("select * from moz_places;") with open("out.csv", "w", newline='') as csv_file:  # Python 3 version     #with open("out.csv", "wb") as csv_file:              # Python 2 version     csv_writer = csv.writer(csv_file)     csv_writer.writerow([i[0] for i in cursor.description]) # write headers     csv_writer.writerows(cursor) 

PEP 249 (DB API 2.0) has more information about cursor.description.

like image 146
Cristian Ciupitu Avatar answered Sep 23 '22 02:09

Cristian Ciupitu