-1

我正在尝试使用python的Beautiful Soup Library从一个html文件中获取一堆div,然后从那里得到字符串——这是一个金钱价值——在div里面。然后删除美元符号并将其转换为小数,以便我可以使用大于和小于条件语句来比较值。我已经用谷歌搜索了它,似乎无法想出将这个 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))
4

2 回答 2

1

您可以使用int()or ,float()具体取决于您希望它是整数还是可以有小数点的数字。

据我所知,您正在使用int(). 当您似乎认为这不起作用时,您可能想要float()

于 2012-12-15T22:52:28.307 回答
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 内部类型转换为整数时遇到问题。

于 2012-12-15T22:54:19.527 回答