DateProperty在csv imp期间变为datetimeProperty

2024-05-14 18:22:49 发布

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

我正在尝试将csv文件中的数据导入本地gae数据存储。基本上,它工作得很好,但出于某种原因,我最终得到了一个datetimeProperty,而不仅仅是一个datePoperty。 导入后,所有日期值都包含时间信息(例如2014-11-21 00:00:00)。你知道吗

有人知道为什么吗?你知道吗

型号:

class DaxValue(db.Model):
    date = db.DateProperty(required=True)
    close = db.FloatProperty()
    prev_close = db.FloatProperty()
    high = db.FloatProperty()
    low = db.FloatProperty()
    opn = db.FloatProperty()
    isTradingDay = db.BooleanProperty()
    popDate = db.DateTimeProperty()

导入csv的代码:

def pop_db():

    with open('table.csv', 'rb') as csvfile:
        reader = csv.reader(csvfile, delimiter=',')
        next(reader)

        for row in reader:

            date = datetime.fromtimestamp(mktime(time.strptime(row[0], "%Y-%m-%d"))).date()
            open1 = float(row[1])
            high = float(row[2])
            low = float(row[3])
            close = float(row[4])
            adj_close = float(row[6])

            query = "SELECT * FROM DaxValue WHERE date = DATE('%s')" % str(date)
            q = db.GqlQuery(query)
            dax_value = q.get()

            if not dax_value:
                dax_value = DaxValue(date=date, open=open1, close=close, high=high, low=low, isTradingDay=True)

            else:
                dax_value.close = close
                dax_value.opn = open1
                dax_value.high = high
                dax_value.low = low
                dax_value.popDate = datetime.now()
                dax_value.isTradingDay = True
                dax_value.prev_close = adj_close

            dax_value.put()

我很纠结于这个查询,它不返回任何结果,即使有一个条目存储在那一天。。。你知道吗

yesterday = (datetime.datetime.now() - timedelta(days=1))
query = "SELECT * FROM DaxValue WHERE date = DATE('%s')" % str(yesterday.date())

Tags: csvtrueclosedbdatetimedatevaluefloat
1条回答
网友
1楼 · 发布于 2024-05-14 18:22:49

Google在内部将所有日期属性和时间属性存储为datetimes。以下是this page的摘录:

class DateProperty(verbose_name=None, auto_now=False, auto_now_add=False, ...) A date without a time of day; see DateTimeProperty for more information.

Value type: datetime.date; converted internally to datetime.datetime

我同时使用date和datetime属性,这并没有给我带来问题,尽管将它们全部存储为datetime似乎很奇怪。你知道吗

相关问题 更多 >

    热门问题