我正在抓取一个XML文件并返回一定百分比的负载,直接拉出百分比,有时是已经附加%符号的负数,例如
-38%
-2%
4%
25%
我正在尝试做一个像这样的过滤器:
if percentage < 20.0 : continue;
但是我无法执行此过滤器,我假设为%符号的结果。
供参考我使用:
cell['roi']
要获得百分比,请使用以下方法遍历每一行:
for row in xmlload1['rows']:
cell = row["cell"]
如何绕过这个%符号?有一个简单的方法吗?
答案 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 "))