我正在尝试使用python的Beautiful Soup Library从一个html文件中获取一堆div,并从那里得到字符串 - 这是一个货币值 - 在div中。然后删除美元符号并将其转换为小数,以便我可以使用大于和小于条件的语句来比较值。我已经用Google搜索了它,似乎无法想出一种将此unicode字符串转换为十进制值的方法。我真的可以在这里使用一些帮助。如何将unicode转换为十进制值?
这是我的最后一次尝试:
import unicodedata
from bs4 import BeautifulSoup
soup = BeautifulSoup(open("/Users/sm/Documents/python/htmldemo.html"))
for tag in soup.findAll("div",attrs={"itemprop":"price"}) :
val = tag.string
new_val = val[8:]
workable = int(new_val)
if workable > 250:
print(type(workable))
else:
print(type(workable))
编辑:
当我打印new_val的类型时,我得到:
print(type(new_val))
答案 0 :(得分:1)
您可以使用int()
或float()
,具体取决于您是希望它是整数还是可以包含小数点的数字。
据我所知,你正在使用int()
。由于您似乎认为这不起作用,您可能需要float()
。
答案 1 :(得分:0)
您确定该值是unicode,而不是一些BeautifulSoup内部表示吗?似乎在python中将unicode转换为整数没有问题。这是Python解释器的输出。
In [2]: my_unicode = u'10'
In [3]: type(my_unicode)
Out[3]: unicode
In [4]: my_int = int(my_unicode)
In [5]: type(my_int)
Out[5]: int
In [6]: my_int > 2
Out[6]: True
In [7]: my_int > 10
Out[7]: False
将一些BeautifulSoup内部类型转换为整数时可能会遇到问题。