从Python列表中删除HTML标记
我有一个包含三个值的python列表:从Python列表中删除HTML标记,python,html,parsing,append,Python,Html,Parsing,Append,我有一个包含三个值的python列表: address = [<p> <strong>CVS Pharmacy #</strong><br/> 1025 St Clair River Dr <br/> Algonac, MI 48001<br/> 1-810-794-4941
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>]
我得到:
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 ']
这不是我想要的,因为它有所有的u和\n以及其他垃圾,并且都在一个长字符串中。有没有一个简单的方法可以做到这一点?如果有一种简单的方法可以一箭双雕的话,我还想最终将这些附加到一个已经存在的csv文件中
谢谢。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]
\s不会删除新行。Regex是一个很好的解决方案,但是您需要在重新编译中特别地放入\n。我也不认为用空格替换新行有什么意义。@Everst\s相当于[\t\n\r\f\v]。它确实会删除新行。是的,我的错,当未指定UNICODE标志时,它相当于该正则表达式集。u是UNICODE\n是换行符,所以它不是垃圾,您是否要将其全部写入csv文件中的一行?可能是
address = [CLEAN.sub(' ', a.text.replace('\n', ',')).strip() for a in address]