Django 1.9从cs导入日期对象

2021-02-25 21:47:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的csv中的日期格式为mm/dd/yyyy

我编辑过设置.py包括:

DATE_INPUT_FORMATS = [
    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y'] 
    # '2006-10-25', '10/25/2006', '10/25/06'

将csv行分配给db model时,我得到以下错误:

^{pr2}$

这是我的代码:

import os
import sys
import csv
import django
from datetime import date as django_date

sys.path.append("/home/nerdbox2/django_/logbook/")
os.environ["DJANGO_SETTINGS_MODULE"] = "logbook.settings"
django.setup()

from flights.models import Flight

f = Flight()

reader = csv.reader(open('path to file'))


for row in reader: #reads row from csv


f.date = django_date(row[0])
f.aircraft = row[1]
f.save()

如果我做一些类似的事情:f.date = django_date(int(row[0]))

我得到:ValueError: invalid literal for int() with base 10: 'date'

我认为问题是,既然输入格式是yyyy/mm/dd'/'字符不能变成int(),但是如何将字符串变成Django将接受的日期对象呢?在

1条回答
网友
1楼 ·

当您想要解析单个日期字符串时,它与django无关。您需要使用^{}将日期时间字符串转换为日期时间对象:

import datetime
f.date = datetime.datetime.strptime('2016/01/01', '%Y/%m/%d').date()

在你的情况下,应该是:

^{pr2}$

相关问题