删除%符号并将结果解析为整数

时间:2013-06-05 19:08:36

标签: python python-2.7 percentage

我正在抓取一个XML文件并返回一定百分比的负载,直接拉出百分比,有时是已经附加%符号的负数,例如

-38%
-2%
4%
25%

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

if percentage < 20.0 : continue;

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

供参考我使用:

cell['roi']

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

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

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

2 个答案:

答案 0 :(得分:7)

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

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

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

cell = float(row["cell"].rstrip("%"))

答案 1 :(得分:3)

你可以将一个字符串传递给strip,这将删除传递的字符串中传递的字符,下面将删除%,换行符和空格:

cell = int(row["cell"].strip("%\n "))