我使用下面的这一行来提取文本:
country_abbreviation = columns[2].text.strip() # Country abbreviation
我得到的结果例如是
fr FRA
。我只想提取 fr
,忽略第二个词 FRA
。
我尝试过使用此方法,但收到一条错误消息,告诉我没有要拆分的数据:
country_abbreviation = columns[2].text.strip().split()[0] # Country abbreviation
知道问题可能出在哪里吗?
问题确实在于有些答案是空的。
我使用了这个解决方法:
country_abbreviation = columns[2].text.strip() # Country abbreviation
first_word = country_abbreviation.split()[0] if country_abbreviation else "" # Extract first word
我收到一条错误消息,告诉我没有要拆分的数据:
最好显示实际结果,例如
error
是 IndexError
例外情况:
>>> empty_str = ""
>>> country_abbreviation = empty_str.strip().split()[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
如果是这种情况,那么我们可以说从
columns[2].text.strip()
获得的文本是空的。
这可能是您从表格的一列中读取而一行包含空字符串的情况。
为了避免此异常,您应该处理此空字符串情况:
def get_first_word(column_data):
if not isinstance(column_data, str):
raise ValueError("column_data should be str")
if not column_data.strip():
return "" # data is empty, return empty also
return column_data.split(" ")[0]
并将
columns[2].text
作为参数传递给 get_first_word
以获取第一个单词(如果有)。
>>> first_word_only = get_first_word(columns[2].text)