我正在运行一个应返回字符串的外部函数-有时,但是,此函数失败并且字符串为空。我想要的行为是“如果字符串为空(即会发生值错误),而不是打印'?'字符串到我的CSV)。

这是我的代码:

    outlist = output.split('\r\n') #splitting the string
    outrank1 = outlist[1][outlist[1].index(':')+1:]
    outrank2 = outlist[2][outlist[2].index(':')+1:]
    print outrank1
    print outrank2
    print str(outlist[0])
    print str(outlist[1])
    print str(outlist[2])
    csvout.writerow([str(outlist[0]), str(outrank1), str(outrank2)]) #writing,error here

这是我遇到的错误的示例:
Traceback (most recent call last):
  File "Methods.py", line 24, in <module>
    outrank2 = outlist[2][outlist[2].index(':')+1:]
ValueError: substring not found

在这种情况下,我想保存一个“?”而不是错误。在排名中排名第二。我怎样才能做到这一点?

最佳答案

您可以将其包装在try-except中

try:
  outrank2 = outlist[2][outlist[2].index(':')+1:]
except ValueError:
  outrank2 = "?"

关于python - Python-处理值错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22080983/

10-11 04:39