Модульным способом: пример использования slqalchemy с automap и mysql.
database.py:
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine
Base = automap_base()
engine = create_engine('mysql://user:pass@localhost:3306/database_name', echo=True)
Base.prepare(engine, reflect=True)
# Map the tables
State = Base.classes.states
session = Session(engine, autoflush=False)
export_to_csv.py:
from databases import *
import csv
def export():
q = session.query(State)
file = './data/states.csv'
with open(file, 'w') as csvfile:
outcsv = csv.writer(csvfile, delimiter=',',quotechar='"', quoting = csv.QUOTE_MINIMAL)
header = State.__table__.columns.keys()
outcsv.writerow(header)
for record in q.all():
outcsv.writerow([getattr(record, c) for c in header ])
if __name__ == "__main__":
export()
Результаты:
имя, abv, страна, is_state, is_lower48, слизень, широта, долгота, население, область Аляска, AK, США, y, n, Аляска, 61.370716, -152.404419,710231,571951.25 Алабама, AL,США, y, y, Алабама, 32.806671, -86.79113,4779736,50744.0 Арканзас, AR, США, y, y, Арканзас, 34.969704, -92.373123,2915918,52068.17 Аризона, Аризона, США, y, y, Аризона, 33.729759,-111.431221,6392017,113634.57 Калифорния, Калифорния, США, y, y, Калифорния, 36.116203, -119.681564,37253956,155939.52 Колорадо, CO, US, y, y, Колорадо, 39.059811, -105.311104, 5029196, 1037295, КоннектикутСША, у, у, Коннектикут, 41,597782, -72,755371,3574097,4844,8 Округ Колумбия, округ Колумбия, США, н, п, округ Колумбия, 38,897438, -77,0217,601723,68,34 Делавэр, DE, США, у,y, Делавэр, 39.318523, -75.507141,897934,1953.56 Флорида, Флорида, США, y, y, Флорида, 27.766279, -81.686783,18801310,53926.82 Грузия, Джорджия, США, y, y, Грузия, 33.040619, -83.643074,9687653, 57906,14