Python:ValueError仅在AppEngine上发生,但在本地工作正常

时间:2014-01-29 16:06:09

标签: python google-app-engine int

这很奇怪。运行代码,它在本地服务器上工作正常但是当它上传到应用程序引擎时它根本不起作用并得到错误:

    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)。 我不明白为什么这不能在网上工作但在本地工作正常。

1 个答案:

答案 0 :(得分:2)

例外情况表明您的输入数据包含逗号,因此您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之间的差异。