这很奇怪。运行代码,它可以在本地服务器上正常工作,但是将其上传到应用程序引擎时根本不起作用,并且会收到错误消息:
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
,从而使调试更加容易。另请注意,日期字符串(来自
time
和datetime
都遵循区域设置,这可能解释了开发系统和AppEngine之间的差异。关于python - Python:ValueError仅在AppEngine上发生,但在本地工作正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21436344/