python - DateTimeProperty 在 Google App Engine 中设置为日期时间时出错

标签 python google-app-engine datetime google-cloud-datastore

我正在编写的一些 Google App Engine 代码遇到了奇怪的错误。

我的程序包含一些如下代码:

import datetime

...

class Action(db.Model):
    visibleDate = db.DateTimeProperty()

...

getActionQuery = Action.gql("WHERE user = :user AND __key__ = :key", user = user, key = self.request.get("key"))
theAction = getActionQuery.get()

....

theAction.visibleDate = datetime.datetime.strptime(self.request.get("visibleDate"), "%Y/%m/%d")

但这会产生以下错误:

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 509, in __call__
    handler.post(*groups)
  File "/Users/redbird/Developer/betterdo-it/main.py", line 132, in post
    theAction.visibleDate = datetime.datetime.strptime(self.request.get("visibleDate"), "%Y/%m/%d"),
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 472, in __set__
    value = self.validate(value)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 2308, in validate
    (self.name, self.data_type.__name__))
BadValueError: Property visibleDate must be a datetime

对于为什么会发生这种情况有什么想法吗?我已经测试过它,我知道我的时间即将到来,正在正确转换,但随后遇到了此错误。

最佳答案

我认为您在回溯中遗漏了一些东西。

我看到:datetime.datetime.strptime(self.request.get("visibleDate"), "%Y/%m/%d"),

注意行尾的逗号。

该逗号使该行返回一个元组,其中包含您的日期。我假设您不小心添加了逗号,因此只需将其删除,您就应该正确分配日期时间。

查看:

from datetime import datetime
a = (datetime(2000,1,1),)
assert isinstance(a, tuple)
a = (datetime(2000,1,1))
assert isinstance(a, datetime)

关于python - DateTimeProperty 在 Google App Engine 中设置为日期时间时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2042913/

相关文章:

python - 在 yaml 文件中为谷歌应用引擎设置 url(找不到页面)问题

python - 在 UploadHandler 中执行图像转换并将其保存到 Blobstore

javascript - 导入 csv 数据时解析带有日期的标题行

datetime - os.difftime(t2, t1) 的用途是什么,但 t2 - t1 未涵盖?

python - 尝试使用 web.py 制作登录脚本

python - Flask 更新查询

python - 在 x = 1 中,x 和 1 都是对象吗?

java - 升级到 Java8 和端点 V2 后 AppEngine 出现错误

python - 上个月日期时间 Pandas

python - python中的关键监听器?