Python拆分使用

Python拆分使用,python,google-app-engine,datetime,Python,Google App Engine,Datetime,我正在做这件事,它应该非常简单,但是sortdate的值是none(注意,我之所以这样做,是因为在Python中将字符串转换为日期是一个错误) 那应该行吗?但是它只是被存储为null,尽管datetopass存储得很好。如果真正的问题是将字符串转换为时间,正如您所指出的,那么您有没有研究过 如您所述,如果真正的问题是将字符串转换为时间,那么您有没有研究过 看看self.request.get('startdate')是什么样子会很有帮助。是ISO(YYYY-MM-DD)吗?如果是这样,我将使用d

我正在做这件事,它应该非常简单,但是sortdate的值是none(注意,我之所以这样做,是因为在Python中将字符串转换为日期是一个错误)


那应该行吗?但是它只是被存储为null,尽管datetopass存储得很好。

如果真正的问题是将字符串转换为时间,正如您所指出的,那么您有没有研究过

如您所述,如果真正的问题是将字符串转换为时间,那么您有没有研究过

看看self.request.get('startdate')是什么样子会很有帮助。是ISO(
YYYY-MM-DD
)吗?如果是这样,我将使用
datetime
展示一个示例。不需要拆分,因为
datetime.datetime.strtime

>>> import datetime
>>> date_to_pass = '2010-05-07'
>>> sortdate = datetime.datetime.strptime(date_to_pass, '%Y-%m-%d')
>>> sortdate
datetime.datetime(2010, 5, 7, 0, 0)

Datetime对象是可排序的,因此无需转换为字符串。除非我没有抓住你问题的重点。

看看self.request.get('startdate')是什么样子会很有帮助。是ISO(
YYYY-MM-DD
)吗?如果是这样,我将使用
datetime
展示一个示例。不需要拆分,因为
datetime.datetime.strtime

>>> import datetime
>>> date_to_pass = '2010-05-07'
>>> sortdate = datetime.datetime.strptime(date_to_pass, '%Y-%m-%d')
>>> sortdate
datetime.datetime(2010, 5, 7, 0, 0)

Datetime对象是可排序的,因此无需转换为字符串。除非我没有抓住你问题的重点。

如果你的输入日期是“YYYY-MM-DD”格式,那么你的代码应该可以正常工作。有一些无关的str()调用,是的,使用strtime更合适,但没有什么会中断

例如,这项工作:

Python 2.5.2 (r252:60911, Apr 15 2008, 11:28:25)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> startdate = '2002-04-20'
>>> splitdate = startdate.split('-')
>>> type(splitdate[0])
<type 'str'>
>>> splitdate[2]+splitdate[1]+splitdate[0]
'20042002'
Python 2.5.2(r252:60911,2008年4月15日,11:28:25) linux2上的[GCC 3.4.6 20060404(Red Hat 3.4.6-9)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>起始日期='2002-04-20' >>>splitdate=startdate.split('-')) >>>类型(拆分日期[0]) >>>拆分日期[2]+拆分日期[1]+拆分日期[0] '20042002' 所以我要看的两个地方是:

  • 您从self.request.get('startdate')和存储在DateToPass中的格式是什么
  • 您还没有向我们显示存储sortdate的代码。它坏了吗

  • 如果输入日期的格式为“YYYY-MM-DD”,那么您的代码应该可以正常工作。有一些无关的str()调用,是的,使用strtime更合适,但没有什么会中断

    例如,这项工作:

    Python 2.5.2 (r252:60911, Apr 15 2008, 11:28:25)
    [GCC 3.4.6 20060404 (Red Hat 3.4.6-9)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> startdate = '2002-04-20'
    >>> splitdate = startdate.split('-')
    >>> type(splitdate[0])
    <type 'str'>
    >>> splitdate[2]+splitdate[1]+splitdate[0]
    '20042002'
    
    Python 2.5.2(r252:60911,2008年4月15日,11:28:25) linux2上的[GCC 3.4.6 20060404(Red Hat 3.4.6-9)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>起始日期='2002-04-20' >>>splitdate=startdate.split('-')) >>>类型(拆分日期[0]) >>>拆分日期[2]+拆分日期[1]+拆分日期[0] '20042002' 所以我要看的两个地方是:

  • 您从self.request.get('startdate')和存储在DateToPass中的格式是什么
  • 您还没有向我们显示存储sortdate的代码。它坏了吗

  • 它是我最初希望达到的最新类型;是的,我一直在那个兔子洞里;我想在YYmmdd的基础上增加这个额外的列进行排序就足够了,因为这是一项急件;是的,我一直在那个兔子洞里;我认为添加这个额外的列以便根据YYmmdd进行排序就足够了,因为这是一个急件。您实际上并没有在模型上设置它(您是指mybreak.sortdate=…?)。这是故意的吗?另外,使用DateTimeProperty会使这更简单。您需要告诉我们您尝试拆分的字符串是什么样的-一些示例。很抱歉,这是该类代码的“剪辑”。mybreak是模型(先前分配的mybreak=mybreak()。正在传递的字符串为21-07-2010;我正在分配各种其他文本位,这些文本位工作正常,在我推送数据时被存储;mybreak.put()转换后的日期存储为null。您实际上没有在模型上设置它(您是指mybreak.sortdate=…?)。这是故意的吗?另外,使用DateTimeProperty会使这更简单。您需要告诉我们您尝试拆分的字符串是什么样的-一些示例。很抱歉,这是该类代码的“剪辑”。mybreak是模型(先前分配的mybreak=mybreak()。正在传递的字符串为21-07-2010;我正在分配各种其他文本位,这些文本位工作正常,在我推送数据时被存储;mybreak.put()转换后的日期存储为空。抱歉,时间延迟太长,请驾车回家。日期以英国格式(dd-mm-YY)输入,日期为2010年5月21日;我可能应该在本地测试一下,现在我不是在远程桌面上工作,但基本上,当我使用“%d-%m-%Y”时,所有路由都会导致字符串错误,这让我开始了白费力气。我希望我现在就试试这段代码,它会工作的;o) 希望你能帮忙。在这种情况下,您的格式字符串将是
    '%d-%m-%y'
    (小y代表年份,大y代表世纪+年份)。Ta,这是一个“难以思考”的时刻,所以我四处闲逛,然后重写了整个应用程序:o) 蟒蛇不全是坏的,只是有点小。对不起,开车回家耽误了很长时间。日期以英国格式(dd-mm-YY)输入,日期为2010年5月21日;我可能应该在本地测试一下,现在我不是在远程桌面上工作,但基本上,当我使用“%d-%m-%Y”时,所有路由都会导致字符串错误,这让我开始了白费力气。我希望我现在就试试这段代码,它会工作的;o) 希望你能帮忙。在这种情况下,您的格式字符串将是
    '%d-%m-%y'
    (小y代表年份,大y代表世纪+年份)。Ta,这是一个“难以思考”的时刻,所以我四处闲逛,然后重写了整个应用程序:o) python也不全是坏的,只是差一点。该存储可以将日期存储为字符串,但它将重新生成的日期(如代码块中的日期)存储为null;模型中的所有其他数据都很好。因此,我假设split的工作方式不同,或者我完全错了:o)。。。你的回答是关于拆分的问题,这很方便