Skip to content

Instantly share code, notes, and snippets.

@Kobold
Created August 13, 2015 18:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kobold/cc30d9bc360e945530d1 to your computer and use it in GitHub Desktop.
Save Kobold/cc30d9bc360e945530d1 to your computer and use it in GitHub Desktop.
Dump querysets to csv
# Via: http://palewi.re/posts/2009/03/03/django-recipe-dump-your-queryset-out-as-a-csv-file/
import csv
from django.db.models.loading import get_model
def dump2csv(qs, outfile_path):
"""
Takes in a Django queryset and spits out a CSV file.
Usage::
>> from dump2csv import dump2csv
>> from dummy_app.models import *
>> qs = DummyModel.objects.all()
>> dump2csv.dump(qs, './data/dump.csv')
Based on a snippet by zbyte64::
http://www.djangosnippets.org/snippets/790/
"""
model = qs.model
writer = csv.writer(open(outfile_path, 'w'))
headers = []
for field in model._meta.fields:
headers.append(field.name)
writer.writerow(headers)
for obj in qs:
row = []
for field in headers:
val = getattr(obj, field)
if callable(val):
val = val()
if type(val) == unicode:
val = val.encode("utf-8")
row.append(val)
writer.writerow(row)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment