仅保留字符串中的第一个单词

问题描述 投票:0回答:2

我使用下面的这一行来提取文本:

country_abbreviation = columns[2].text.strip()  # Country abbreviation

我得到的结果例如是

fr FRA
。我只想提取
fr
,忽略第二个词
FRA

我尝试过使用此方法,但收到一条错误消息,告诉我没有要拆分的数据:

country_abbreviation = columns[2].text.strip().split()[0]  # Country abbreviation

知道问题可能出在哪里吗?

python string
2个回答
1
投票

问题确实在于有些答案是空的。

我使用了这个解决方法:

country_abbreviation = columns[2].text.strip()  # Country abbreviation
first_word = country_abbreviation.split()[0] if country_abbreviation else ""  # Extract first word

1
投票

我收到一条错误消息,告诉我没有要拆分的数据:

最好显示实际结果,例如

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)
© www.soinside.com 2019 - 2024. All rights reserved.