2

我正在抓取一个 XML 文件并返回一个百分比负载,直接以百分比形式提取,有时是负数,并且已经附加了 % 符号,例如

-38%
-2%
4%
25%

我正在尝试做这样的过滤器:

if percentage < 20.0 : continue;

但是我无法执行此过滤器,我假设是 % 符号的结果。

作为参考,我使用:

cell['roi']

要获得百分比,请使用以下方法遍历每一行:

for row in xmlload1['rows']:
    cell = row["cell"]

我如何绕过这个 % 符号?有没有简单的方法?

4

2 回答 2

8

您无法执行该过滤器,因为您正在尝试将字符串(如"4%")与浮点数(20.0)进行比较。在 Python 3 中,这将引发TypeError; 在 Python 2 中,它会“工作”,但所有字符串都将被视为大于 number 20.0,所以它不会有任何好处。

您需要先将字符串转换为浮点数,然后才能将其用作浮点数。但是您不想转换整个字符串,只转换"%"字符之前的部分。(因为4%不是数字,所以只是4那个数字。)

因此,让我们分两步进行:使用rstrip删除"%",然后使用float将其转换为浮点数。

cell = float(row["cell"].rstrip("%"))
于 2013-06-05T19:15:41.623 回答
3

您可以传递一个字符串,strip该字符串将去除传递的字符串中传递的字符,下面将去除 %、换行符和空格:

cell = int(row["cell"].strip("%\n "))
于 2013-06-05T19:10:52.040 回答