运行以下命令
prices = [price.text.strip() for price in soup.select('.special-price')]
prices = prices.replace(u'\xa0', u' ')
print(prices)
我得到的“列表”对象没有属性“替换”
我应该放在哪里替换?有什么方法可以一步一步清除它吗?
谢谢
答案 0 :(得分:1)
是的,因为您使用列表理解功能创建了一个列表
您需要通过prices=''.join(prices)
将列表转换为字符串,如果价格未解析为字符串,则假设价格为字符串列表。价格将是一个字符串。现在,您可以调用replace了。
答案 1 :(得分:1)
由于我们无权访问您的示例数据,因此应该这样做:
您需要将replace()
放在str
而不是list
上,例如:
prices = ['1','1','2','3','4','5','1','1','1']
print([x.replace('1', '9') for x in prices])
输出:
['9', '9', '2', '3', '4', '5', '9', '9', '9']
答案 2 :(得分:0)
因为'list' object has no attribute 'replace'
。那就是为什么。
您正在尝试个别更改价格。字符串具有replace
方法,但列表没有。
您应该将替换添加到列表理解中。
prices = [price.text.strip().replace(u'\xa0', u' ') for price in soup.select('.special-price')]
print(prices)