我有一个包含三个值的python列表:
address =
[<p>
<strong>CVS Pharmacy #</strong><br/>
1025 St Clair River Dr <br/>
Algonac, MI 48001<br/>
1-810-794-4941
</p>,
<p>
<strong>Kroger Pharmacy</strong><br/>
2600 Pointe Tremble <br/>
Algonac, MI 48001<br/>
1-810-671-4002
</p>,
<p>
<strong>Rite Aid Pharmacy 04943</strong><br/>
402 Pointe Tremble Road <br/>
Algonac, MI 48001<br/>
1-810-794-4985
</p>]
我想删除HTML标记。当试图逐一这样做时:
print(address[0].text)
我明白了:
CVS Pharmacy #
1025 St Clair River Dr
Algonac, MI 48001
1-810-794-4941
这就是我想要的。但是,当我迭代循环时,我得到:
[u'\nCVS Pharmacy #\n 1025 St Clair River Dr \n Algonac, MI 48001\n 1-810-794-4941\n ', u'\nKroger Pharmacy\n 2600 Pointe Tremble \n Algonac, MI 48001\n 1-810-671-4002\n ', u'\nRite Aid Pharmacy 04943\n 402 Pointe Tremble Road \n Algonac, MI 48001\n 1-810-794-4985\n ']
这不是我想要的,因为它包含所有你的和其他垃圾,而且它们都在一个长字符串中。是否有捷径可寻?我还想最终将这些附加到已经存在的csv文件中,如果有一种简单的方法可以一举两得。
感谢。
答案 0 :(得分:0)
u
表示其unicode字符串。 \n
是新行字符。您可以编写一个正则表达式来删除单行空格中的新行字符,多个空格,制表符等。
import re
CLEAN = re.compile('\s+')
address = [CLEAN.sub(' ', a.text).strip() for a in address]
或者用逗号替换新行,以便地址格式化有意义。
address = [CLEAN.sub(' ', a.text.replace('\n', ',')).strip() for a in address]