2024-10-04 11:31:45 发布
网友
我正在抓取一个XML文件并返回一个百分比,直接作为一个百分比提取出来,有时是负数,并附加了%符号
-38% -2% 4% 25%
我试着做一个这样的过滤器:
但是,我不能执行这个过滤器,我假设是由于%符号。在
作为参考,我使用:
cell['roi']
要获取百分比,请使用以下命令遍历每一行:
for row in xmlload1['rows']: cell = row["cell"]
如何绕过这个%符号?有简单的方法吗?在
您无法执行该筛选器,因为您正在尝试将字符串(如"4%")与浮点(20.0)进行比较。在Python3中,这将引发一个TypeError;在Python2中,它将“工作”,但所有字符串都将被视为大于数字20.0,因此它没有任何好处。在
"4%"
20.0
TypeError
您需要先将字符串转换为float,然后才能将其用作float。但是您不想转换整个字符串,只转换"%"字符之前的部分。(因为4%不是数字,只有4才是数字。)
"%"
4%
4
所以,让我们分两步来完成:使用^{}删除{},然后使用{a2}将其转换为浮点。在
cell = float(row["cell"].rstrip("%"))
您可以向strip传递一个字符串,该字符串将删除在传递的字符串中传递的字符,下面将删除%,换行符和空格:
strip
cell = int(row["cell"].strip("%\n "))
您无法执行该筛选器,因为您正在尝试将字符串(如
"4%"
)与浮点(20.0
)进行比较。在Python3中,这将引发一个TypeError
;在Python2中,它将“工作”,但所有字符串都将被视为大于数字20.0
,因此它没有任何好处。在您需要先将字符串转换为float,然后才能将其用作float。但是您不想转换整个字符串,只转换
"%"
字符之前的部分。(因为4%
不是数字,只有4
才是数字。)所以,让我们分两步来完成:使用^{} 删除{},然后使用{a2}将其转换为浮点。在
您可以向
strip
传递一个字符串,该字符串将删除在传递的字符串中传递的字符,下面将删除%,换行符和空格:相关问题 更多 >
编程相关推荐