这很奇怪。运行代码,它可以在本地服务器上正常工作,但是将其上传到应用程序引擎时根本不起作用,并且会收到错误消息:

    if int(totaltime[0:2]) == 23 and int(totaltime[3:5]) >= 45:
ValueError: invalid literal for int() with base 10: ', '


这是触发它的代码:

        if int(totaltime[0:2]) == 23 and int(totaltime[3:5]) >= 45:
            ta = "yes"
        else:
            ta = "no"


总时间是23:27:35,所以int(totaltime [0:2])得到23,而(totaltime [3:5])得到27。
我不明白为什么这在网上不起作用,但是在本地效果很好。

最佳答案

该异常表明您的输入数据包含逗号,因此显然违反了您对totaltime被称为23:27:35的期望。

尝试在Appengine上输出repr(totaltime[0:2])repr(totaltime[3:5])

同样,您可以将if语句分成两行,如下所示:

if (int(totaltime[0:2]) == 23 and
    int(totaltime[3:5]) >= 45):


这样一来,您就可以查看对int()的哪些调用会触发ValueError,从而使调试更加容易。

另请注意,日期字符串(来自timedatetime都遵循区域设置,这可能解释了开发系统和AppEngine之间的差异。

关于python - Python:ValueError仅在AppEngine上发生,但在本地工作正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21436344/

10-11 04:03