【问题标题】:Slicing strings pulled from HTML对从 HTML 中提取的字符串进行切片
【发布时间】:2016-08-18 10:06:23
【问题描述】:

我使用

从网页中提取了一些数据
y = soup.find('td', attrs={'data'}).string

当我尝试使用 float() 时,我收到错误消息,指出它是 float() 的无效文字。所以我试图通过使用 print(repr(y)) 找出问题所在。 这给了我以下结果。

u'\r\n                450,990\r\n            '

我意识到你的意思是 unicode,但是我怎样才能把它变成一种格式,以便我可以 float() 它呢?

提前致谢,第一次发帖请见谅。

【问题讨论】:

  • 在整个字符串上使用strip()
  • 您只需要strip 并注意,。它是用来表示小数还是作为千位分隔符?
  • 抱歉,我之前没有说清楚。用于表示小数。
  • @Kamikazie 在这种情况下,您可以使用@Nehal 的答案(stackoverflow.com/a/39015487/1453822),但将replace(',','') 更改为replace(',','.')

标签: python python-unicode


【解决方案1】:
>>> y = str(u'\r\n                450,990\r\n            ')
>>> map(float, y.strip().split(','))
[450.0, 990.0]

>>> float(y.strip().replace(',',''))
450990.0

>>> float(y.strip().replace(',','.'))
450.99

【讨论】:

  • , 在某些语言环境中可能表示小数,或用作千位分隔符。
  • 非常感谢。它确实用作小数。稍微编辑了你的最后一个代码,它现在可以工作了。非常感谢 :) 良好的网站初体验。
猜你喜欢
  • 2012-07-13
  • 2014-07-08
  • 1970-01-01
  • 2012-11-20
  • 2011-12-03
  • 2021-03-12
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多