Python 将日期时间导出到 csv
Python export datetime to csv
我有这个代码
import csv
def export_failures_all(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="failures.csv"'
writer = csv.writer(response, delimiter=';', dialect = 'excel')
response.write(u'\ufeff'.encode('utf8'))
writer.writerow(['Maszyna', 'Wydział', 'Opis', 'Data dodania', 'Data rozpoczęcia naprawy', 'Data zakończenia naprawy', 'Zgłaszający', 'Przyjęte przez', 'Status'])
awarie = Awaria.objects.all().values_list('maszyna__nazwa', 'wydzial__nazwa', 'description', 'add_date', 'repair_date', 'remove_date', 'user__username', 'sur__username', 'status__nazwa').order_by('-id')
for awaria in awarie:
writer.writerow(awaria)
return response
我遇到的问题是 add_date
、repair_date
、remove_date
,因为有 DateTimeField
并且在 csv 文件中它们是秒数:
2017-02-14 09:50:19.271833+00:00
2017-02-14 08:38:09.362218+00:00
我想要这样:
2017-02-14 09:50
2017-02-14 08:38
有什么实现方法吗?
先格式化:
my_datetime.strftime("%Y-%m-%d %H:%M")
来自How do I turn a python datetime into a string, with readable format date?
更新列表中的所有日期(假设它是一个列表列表)
values_list = [[x.strftime("%Y-%m-%d %H:%M") if isinstance(x, datetime.datetime) else x for x in row] for row in values_list]
我有这个代码
import csv
def export_failures_all(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="failures.csv"'
writer = csv.writer(response, delimiter=';', dialect = 'excel')
response.write(u'\ufeff'.encode('utf8'))
writer.writerow(['Maszyna', 'Wydział', 'Opis', 'Data dodania', 'Data rozpoczęcia naprawy', 'Data zakończenia naprawy', 'Zgłaszający', 'Przyjęte przez', 'Status'])
awarie = Awaria.objects.all().values_list('maszyna__nazwa', 'wydzial__nazwa', 'description', 'add_date', 'repair_date', 'remove_date', 'user__username', 'sur__username', 'status__nazwa').order_by('-id')
for awaria in awarie:
writer.writerow(awaria)
return response
我遇到的问题是 add_date
、repair_date
、remove_date
,因为有 DateTimeField
并且在 csv 文件中它们是秒数:
2017-02-14 09:50:19.271833+00:00
2017-02-14 08:38:09.362218+00:00
我想要这样:
2017-02-14 09:50
2017-02-14 08:38
有什么实现方法吗?
先格式化:
my_datetime.strftime("%Y-%m-%d %H:%M")
来自How do I turn a python datetime into a string, with readable format date?
更新列表中的所有日期(假设它是一个列表列表)
values_list = [[x.strftime("%Y-%m-%d %H:%M") if isinstance(x, datetime.datetime) else x for x in row] for row in values_list]