python - 是否有更优雅的方法来处理此抓取工具中的空值?

标签 python datetime coding-style strptime pep

现在我已经弄清楚了 How do I strtotime in python?我想知道是否有一种更优雅的方法来处理具有空日期的条目,如果我尝试对它们进行 strptime() ,则会返回错误。

warrant_issued = cells[4].get_text().strip()
try:
    warrant_issued_no = datetime.strptime(warrant_issued, '%m/%d/%Y')
except:
    warrant_issued_no = ''

这可行,但我正在解析每行中的四到五个日期,它看起来既冗长又重复。我想我应该定义一个函数,但是还有其他方法可以让这个函数更加Pythonic吗?

为了简洁起见,我一开始就做了from datetime import datetime,这样datetime.strptime()就可以工作了。否则我需要 datetime.datetime.strptime()

最佳答案

我认为定义一个函数并仅捕获您知道如何处理的异常正是实现此目的的方法。

def parse_datetime(warrant_issued):
   try:
      warrant_issued_no = datetime.strptime(warrant_issued, '%m/%d/%Y')
   except ValueError:
      warrant_issued_no = ''

warrants_issued = [ parse_datetime(cell.get_text().strip()) for cell in cells ]

关于python - 是否有更优雅的方法来处理此抓取工具中的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13553321/

相关文章:

ruby-on-rails-3 - rails + sideqik...如何在特定日期和时间执行任务

go - 在 Go 中命名标签的标准做法是什么?

python - 没有重复的列表的笛卡尔积

python - 运行时警告 : coroutine 'Messageable.send' was never awaited python. py

python - 设置分布式 ipython/ipyparallel MPI 集群

java - 如何将日期字符串与当前日期进行比较?

javascript - Date.toString() 的输出总是采用相同的格式吗?

python - Python 中的深度优先搜索(包括循环)

计算器变体的 javascript

c++ - 编程风格 : object with passages by references or value? (c++)