python - 应该被捕获和跳过的 ValueError,但会使程序崩溃
问题描述
有什么问题:
try:
number = int((self.final_df_1[index1_name][i])[:first_space_a])
except TypeError or ValueError:
continue
对于某些背景,该条目Dataframe
是地址的字符串。的参数int()
只是第一个“单词”,在这种情况下是街道号码。这里的逻辑是我想尝试将该街道号码转换为整数,如果它碰巧抛出 TypeError 或 ValueError,我想跳到for
嵌套在其中的循环的下一个迭代,即到下一个数据框的行。这是实用的,因为我正在解析的 CSV 包含数千个地址,并且偶尔会出现奇怪的格式(例如“74271/2”,这是在测试集中始终抛出此错误的少数条目之一)。
我希望这段代码在尝试转换为整数期间捕获错误,然后再次跳到循环的下一次迭代,但它会做任何事情,而不是它应该做的事情。
提前致谢。
解决方案
尝试做
try:
number = int((self.final_df_1[index1_name][i])[:first_space_a])
except (TypeError,ValueError):
continue
代替
try:
number = int((self.final_df_1[index1_name][i])[:first_space_a])
except TypeError or ValueError:
continue
这将检查两个错误并且程序不会崩溃。您可以将此扩展到您想要检查的任何数量的错误。
推荐阅读
- reactjs - 使用和不使用 docker-compose 运行映像之间的 Dockerized react 应用程序差异
- reactjs - 使用 create-react-app project_name 创建反应应用程序时我们需要互联网连接吗
- assembly - 使用 NASM 汇编代码的段违规
- r - ShinyApps.io 问题:没有名为“askpass”的包
- python - Modify ellipse coordinates in pygame
- java - Error in Spigot when Joining with colored shutdown message
- javascript - How to redirect after dispatching an action in React.js
- php - How to submit multiple rows from an html form into a db table?
- mongoose - How to split Mongoose Connection properly on NestJS
- sql-server - Is there any way to declare constants file in Sql Server?