2016-11-07 4 views
2

Ich versuche, einige Suchergebnisse in eine CSV-Datei schreiben, aber mit der Möglichkeit, einige Felder leer zu haben. Momentan schreibe ich den gesamten Suchstring, aber es ist die einzige Möglichkeit, mit Fehlern umzugehen, wenn kein Feld vorhanden ist.Django schreibe an csv mit einigen leeren Feldern

Dies ist mein Code:

if request.POST: 
    if request.POST.get('search_type_id') == "1": 
     response = HttpResponse(content_type='text/csv') 
     response['Content-Disposition'] = 'attachment; filename="Report Results.csv"' 

     export_data = request.session['report_results'] 
     report_results = Tree.objects.filter(id__in=[instance['id'] for instance in export_data]).order_by('-created_at') 
     writer = csv.writer(response) 
     writer.writerow(['Tree ID', 'Int ID', 'Site Address', 'Site Street', 'Date Planted']) 
     for obj in report_results: 
      writer.writerow([ 
       [obj.id_shared, ''], 
       [obj.id_int, ''], 
       [obj.planting_site.site_address, ''], 
       [obj.planting_site.site_street, ''], 
       [obj.planted_date, ''] 
       ]) 
     return response 

Gerade jetzt meine CSV gibt Konten für leere Felder, sondern gibt mir ein [250264, ''] als Baum ID, zum Beispiel. Gibt es eine Möglichkeit, dass ich es ersetzen kann, wenn es nichts gibt (zum Beispiel keine obj.planting_site.site_address)?

Für JSON-Ergebnisse von einer anderen Website gezogen habe ich obj.get ('tree_id', ''), aber ich kann das nicht tun, wenn die Objekte Modelle intern gespeichert sind.

Antwort

2

Versuchen Sie etwas wie das.

writer.writerow([ 
       obj.id_shared or '', 
       obj.id_int or '', 
       obj.planting_site.site_address or '', 
       obj.planting_site.site_street or '', 
       obj.planted_date or '' 
       ]) 

Wenn die Objekt-Eigenschaft leer ist, die oder der Zustand in die Datei

+0

Sie geschrieben in Rohling führt danken, das tat es! Ich habe das nicht versucht, weil ich dachte, es wäre zu einfach ... Seufz. Weiter! –

+0

froh, geholfen zu haben – e4c5

Verwandte Themen