我尝试在简单的计算中使用带有string
的已删除BeautifulSoup
。解释器给出base 10 error
,表示字符串中有隐藏的字符。
事实证明这是真的,因为控制台输出包含隐藏数据的原始字符串:
2.177
['\n\n2.177']
2.177
是我尝试使用的数字。 ['\n\n2.177']
是字符串的隐藏部分。由于隐藏的值不能转换为int,但我无法对其进行任何计算。
我已经查找了几种从字符串中删除隐藏字符的方法,但到目前为止,stackoverflow似乎只有关于删除特殊隐藏字符的答案。
我的遗憾不是特别的。有谁知道如何删除这部分字符串?
答案 0 :(得分:2)
根据澄清,看起来字符串的内容是"\n\n2.177"
,即有两个前导换行符。在这种情况下,问题与新行不同,因为2.177
确实不是int
的有效表示。 int("\n\n2.177")
和int("2.177")
都会ValueError: invalid literal for int() with base 10: '2.177'
。
要回答您的直接问题,您可以使用strip
方法在字符串上删除前导和尾随空格,例如vacancy_amount.strip()
。
也许你想要得到一个浮点数,在这种情况下float(vacancy_amount)
会给你2.177
。如果您想进一步将其转换为整数,可以尝试int(float(vacancy_amount))
给2
。
答案 1 :(得分:0)
您可以使用正则表达式:
import re
s = '\n\n2.177'
new_s = re.findall('[\.\d]+', s)
输出:
['2.177']