Python中带有特殊字符的字符串出现不正确

2024-04-26 02:29:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我用beauthoulsoup将一个网站上的一些文本(城市名称)解析成一个列表,但是遇到了一个我无法克服的问题。网站上的文本元素有特殊字符,当我打印列表时,城市名称显示为[u'London],而不是特殊字符,而是数字和字母。如何去掉开头的“u”,并将文本转换为网站上最初显示的格式?在

代码如下:

import urllib2
from bs4 import BeautifulSoup

address = 'https://clinicaltrials.gov/ct2/show/NCT02226120?resultsxml=true'

page = urllib2.urlopen(address)
soup = BeautifulSoup(page)
locations = soup.findAll('country', text="Hungary")
for city_tag in locations:
    site=city_tag.parent.name
    if site=="address":
        desired_city=str(city_tag.findPreviousSibling('city').contents)
        print desired_city

我得到的输出是:

^{pr2}$

例如,底部的第7个元素[u'Nyiregyh\xe1za']显示不正确。在


Tags: 文本import名称元素city列表网站address
1条回答
网友
1楼 · 发布于 2024-04-26 02:29:34

您使用^{}来转换您拥有的对象以便可以打印:

    desired_city=str(city_tag.findPreviousSibling('city').contents)
    print desired_city

您不仅可以看到您询问的“u”前缀,还可以看到[]和{}。这些标点符号是这些类型的对象通过str()转换为文本的一部分:[]表示您有一个列表对象。u''表示列表中的对象是“text”。注意:Python2在字节和字符的处理上相当草率。这种草率让许多人感到困惑,特别是因为有时即使在其他数据或环境中出现错误或出现故障时,它也能正常工作。

由于列表中包含unicode对象,因此需要打印该值:

^{pr2}$

请注意,我假设城市列表至少有一个元素。您显示的示例输出是这样的,但是最好检查错误情况。在

相关问题 更多 >