如何将字符串添加到列表中的某些项目?

时间:2018-11-01 15:43:52

标签: python python-3.x beautifulsoup

我是Python(3)和Beautifulsoup(4)的新手,试图学习网络抓取。

我正在抓捕瑞典议会议员名单。输出中几乎所有名称旁边都带有(S)(社会民主党成员)。前四个名称缺少(S)。

是否有某种方法可以将此名称添加到没有它的每个名称中,也许 条件语句? “如果列表项不包含“(S)”,则将其附加 在该列表项的末尾。”

此外,是否有可能像底部的名字一样格式化名字?

代码:

helper_df = df.dropna()
df = df.fillna(numpy.random.normal(loc=helper_df.mean(), scale=numpy.std(helper_df)))

输出为:

source = urllib.request.urlopen("https://www.riksdagen.se/sv/ledamoter- 
partier/socialdemokraterna/").read()
soup = bs.BeautifulSoup(source, "lxml")

namn = soup.find_all("span", {"class": "fellow-name"})

for span in soup.find_all("span", {"class": "fellow-name"}):
    resultat = (span.text.strip())
    print(resultat)

1 个答案:

答案 0 :(得分:3)

有一种方法:str.endswith

resultat = span.text.strip()
if not resultat.endswith(' (S)'):
    resultat += ' (S)'

(我在第一行中删除了圆括号;没有必要。)

要在名字的末尾添加逗号,请将文本分隔在空格上,然后再将其与第一项放在最后:

if not ',' in resultat:
    temp_list = resultat.split()
    resultat = ' '.join(temp_list[1:])+', '+temp_list[0]

结果:

Löfven, Stefan (S)
Ygeman, Anders (S)
Karlsson, Annelie (S)
Rådström Baastad, Lena (S)
Ahlberg, Ann-Christin (S)
Andersson, Johan (S)
Axelsson, Marie (S)