googleappengin中的工作日期时间对象

2024-09-30 12:29:14 发布

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

在这个模型中

class Rep(db.Model):
    mAUTHOR = db.UserProperty(auto_current_user=True)
    mUNIQUE = db.StringProperty()
    mCOUNT = db.IntegerProperty()
    mDATE = db.DateTimeProperty(auto_now=True)
    mDATE0 = db.DateTimeProperty(auto_now_add=True)
    mWEIGHT = db.IntegerProperty()

我想做的是:

^{pr2}$

在这个for循环中

    for i in range(len(UNIQUES)):                        
        C_QUERY = Rep.all()
        C_QUERY.filter("mAUTHOR =", user)
        C_QUERY.filter("mUNIQUE =", UNIQUES[i])
        C_RESULT = C_QUERY.fetch(1)                
        if C_RESULT:
            rep=C_RESULT[0]
            rep.mCOUNT+=COUNTS[i]
            # how to convert mDATE0 to integer so that I can divide:
            # rep.mWEIGHT = rep.mCOUNT / rep.mDATE0
            rep.put()
        else:
            C = COUNTS[i]
            S = UNIQUES[i]
            write_to_db(S, C)

我在其他几个论坛上问了同样的问题,我得到了很好很有价值的建议,但是我仍然不能让这段代码工作,因为我对(对象,实例,日期时间。日期时间,秒,秒。。。等等)例如,我认为

mWEIGHT = mCOUNT / rep.mDATE0.second

会将mDATE0转换为秒;但它没有,它只是从2010-11-12 18:57:27.338000即27中获取第二部分。在

以及

mWEIGHT = mCOUNT / mDATE0.date

提供类型不匹配错误消息。在

我也试过了

rep.mWEIGHT = rep.mCOUNT / rep.mDATE0.toordinal()

{cd2>给出了一个相同的数字。在

另请参阅我关于同一主题的previous question。在

谢谢你的帮助。在

编辑3

这很管用,谢谢!在

if C_RESULT:
    rep = C_RESULT[0]
    rep.mCOUNT+=COUNTS[i]
    utc_tuple = rep.mDATE0.utctimetuple()
    # this is actually float not integer
    mDATE0_integer = time.mktime(utc_tuple)
    mDATE0_day = mDATE0_integer / 86400
    rep.mWEIGHT = float(rep.mCOUNT / mDATE0_day)
    rep.put()

编辑2 @康斯坦丁:我意识到数字必须是浮点数:

>>> mCOUNT = 35
>>> div = mCOUNT / mDATE0
>>> div
0
>>> div = float(mCOUNT) / float(mDATE0)
>>> div
2.7140704010987625e-08
>>> 

不知道如何将此合并到脚本中。有什么建议吗?在

编辑

@康斯坦丁:

对于项目

C_RESULT[0]=“新项目”

这就是我得到的结果。在

^{9}$

所以

mDATE0_integer = int(time.mktime(rep.mDATE0.utctimetuple()))

工作并给出整数1289575981,但是这个除法

rep.mWEIGHT = rep.mCOUNT / mDATE0_integer

结果为0。有什么建议吗?在


Tags: todivtrueautodbintegerresultfloat
1条回答
网友
1楼 · 发布于 2024-09-30 12:29:14

这应该是您想要的:

import time
mWEIGHT = mCOUNT / time.mktime(mDATE0.utctimetuple())

^{}。在

mCOUNT / mDATE0.date失败,因为intdate没有除法运算符。在

^{}不适合您,因为它按日期操作,完全忽略时间。在

相关问题 更多 >

    热门问题