【发布时间】:2020-08-07 18:42:57
【问题描述】:
我正在使用 Python 中的 BeautifulSoup 来解析一些 XML。我发现自己不得不编写看起来像这样的代码
for document in soup.find_all('document'):
if document.find('doc-number'):
doc_number = document.find('doc-number').string
# More similar if statements further down
我发现编写document.find('doc-number') 两次:一次在if 语句中,一次在if 块中相当麻烦并且导致代码行很长。
有什么方法可以让代码更短、更 Pythonic 吗?
这是 Python 3.6
【问题讨论】:
-
哪个版本的 Python?您可以在 3.8 中使用 assignment expression。
-
哦,好的,是的。已删除!
-
@jonrsharpe,我在问题中添加了 Python 的版本
-
然后您可以为可能元素 (
el = document.find('doc-number')) 或函数提取变量(您可以像doc_number = get_string_from('doc-number')一样调用)。
标签: python-3.x if-statement beautifulsoup