编辑字典中的字符串以删除出现的两个特定字符

我正在运行python-BeautifulSoup代码以从网站获取商品价格数据。我面临的问题是输出中包含不必要的“ \ n”和空格,前者我无法将其删除。

我可以使用.replace函数删除空格,但是不适用于“ \ n”。

代码如下:

from bs4 import BeautifulSoup
import requests
import html5lib


URL= "https://tradingeconomics.com/commodities"
response=requests.get(URL)


soup=BeautifulSoup(response.content,'html5lib')
print(soup)



C1=soup.find(class_='table table-hover table-striped').find('tbody')
C2=C1.find_all('tr')

for tr in C2:
    td=tr.find_all('td')
    row=[i.text for i in td]
    row=str(row)
    row=row.replace(' ','').replace("\n",'')
    print(row)

这是我当前得到的输出: ['\n\n','\n\nUranium\n\n\n','\n\n24.0500\n','\n\n0.20\n','\n0.84%\n','\n-0.21%\n','\n-5.32%\n','\n-16.35%\n','\nNov/01\n']

这是我想要的输出,其中不包括\n['','Uranium','24.0500','0.20','0.84%','-0.21%','-5.32%','-16.35%','Nov/01']

非常感谢。

dfsfjhsd 回答:编辑字典中的字符串以删除出现的两个特定字符

您可以直接在字符串上调用.strip()。默认情况下,它会删除前导+尾随空格和换行符。更多示例here

示例:

your_string = '\n\nUranium\n\n\n'

print(your_string.strip())

输出:

Uranium

问题在这里:

row=[i.text for i in td] #['\n\n','\nUranium\n' ....]
row=str(row)

您正在尝试将字符串列表转换为单个字符串。这就是为什么您没有获得期望的输出的原因。您应该更新列表中的每个字符串。

尝试一下:

for tr in C2:
    td=tr.find_all('td')
    row=[i.text.strip() for i in td]
    print(row)
本文链接:https://www.f2er.com/3167173.html

大家都在问