从Python列表中删除HTML标记

从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

我有一个包含三个值的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>]
我得到:

    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]