在CSV引擎中将字符串从CSV导入DateProperty

时间:2012-04-28 17:31:21

标签: python google-app-engine datetime

我正在尝试将日期格式为“06/01/05”(月/日/年)的CSV文件读入App Engine(Python)中的 DateProperty (而不是DateTimeProperty) 。这是我现在拥有的:

for row in mycsvfiledata:
    obj = MyObject()
    datetemp = row[1]
    cohorttemp = datetime.datetime.strptime(datetemp, "%m/%d/%y")
    obj.cohort_date.month = cohorttemp.month
    obj.cohort_date.day = cohorttemp.day
    obj.cohort_date.year = cohorttemp.year

我收到错误:     [...省略...]     obj.cohort_date.month = cohorttemp.month     AttributeError:'NoneType'对象没有属性'month'

我也试过了:

obj.cohort_date = datetime.date.strptime(datetemp, "%m/%d/%y")

(但strptime似乎只生成一个日期时间对象,而不是日期对象)

obj.cohort_date = datetime.datetime.strptime(datetemp, "%m/%d/%y")

(但“cohort_date”是App Engine中的DateProperty,我得到“BadValueError:属性cohort_date必须是日期,而不是日期时间”,当我尝试时)

如果我只是将“cohort_date”设为DateTimeProperty,那么一切正常,但我不希望这样(出于各种原因)。我很感激任何指导!

1 个答案:

答案 0 :(得分:2)

datetime个实例有date()方法返回相应的date实例,因此:

obj.cohort_date = datetime.strptime(datetemp, "%m/%d/%y").date()