警告:我是个十足的新手;如果在提交此问题之前没有搜索到正确的内容,我深表歉意。我发现了很多关于如何忽略错误的知识,但并不像我在这里要做的那样。你知道吗
我有一个简单的脚本,用于从数据库中获取数据,解析一些字段,然后将解析后的值重新写入数据库。多个用户根据分隔模板提交到数据库,但存在一定程度的不符合性,这意味着有时字符串不会包含所有/任何分隔符。我的脚本需要能够完全抛出这些实例来处理它们。你知道吗
我很难抛出不兼容的字符串,而不是忽略它们引发的错误。当我尝试try-except-pass时,当我的脚本试图将解析的值附加到我最终要写回db的数组中时,我最终得到了错误。你知道吗
最初,我的剧本说:
def parse_comments(comments):
parts = comments.split("||")
if len(parts) < 20:
raise ValueError("Comment didn't have enough || delimiters")
return Result._make([parts[i].strip() for i in xrange(2, 21, 3)])
完全兼容的上传会将结果追加到数组中并写回数据库。你知道吗
我试过了,除了:
def parse_comments(comments):
parts = comments.split("||")
try:
Thing._make([parts[i].strip() for i in xrange(2, 21, 3)])
except:
pass
return Thing
但当我尝试将解析后的值附加到数组中时,我最终得到了一个错误——具体来说是TypeError:'type'对象没有属性'getitem'
我也试过:
def parse_comments(comments):
parts = comments.split("||")
if len(parts) >= 20:
Thing._make([parts[i].strip() for i in xrange(2, 21, 3)])
else:
pass
return Thing
但无济于事。你知道吗
DR:太长了,读不下去了,我需要分析一下东西,追加解析的项目。如果一个字符串不能按我所希望的方式解析,我希望我的代码完全忽略该字符串并继续。你知道吗
因为
Thing
意味着事物类本身,而不是该类的实例。你知道吗当数据无效时,您需要更清楚地考虑要返回什么。在这种情况下,您可能无法在这里返回任何直接可用的内容,因此调用代码必须显式检查。你知道吗
我不知道你想做什么我都明白。但我认为你没有在正确的地方发现错误。您自己说过,当您想将值附加到数组时,会出现这种情况。所以也许你应该:
您应该在
except
之后提供要捕获的异常类型,否则它将捕获any exception,甚至用户的CTRL+C
也会引发KeyboardInterrupt。你知道吗相关问题 更多 >
编程相关推荐