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

-38%
-2%
4%
25%


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

if percentage < 20.0 : continue;


但是,由于%符号,我无法执行此过滤器。

作为参考,我使用:

cell['roi']


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

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


如何避开这个%符号?有没有简单的方法?

最佳答案

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

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

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

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

10-08 20:27