我正在抓取一个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("%"))