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.
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! –
froh, geholfen zu haben – e4c5