我正在编写一些代码,从一个站点获取原始HTML,使用regex精确定位某个可能随时间变化的值,并将其与存储在文本文件中的值进行比较。你知道吗
除了将我的regex对象转换成一个浮点数以允许与另一个浮点数进行比较之外,所有的工作都正常。你知道吗
def find_new_value(): # retrieves value from website
cmc_html = requests.get('https://websitewithvalue.com')
noStarchSoup = bs4.BeautifulSoup(cmc_html.text,
features="html.parser")
return noStarchSoup
new_value = float(btc_regex2.search(str(find_new_value())))
导致- TypeError:float()参数必须是字符串或数字,而不是'_sre.sre\u匹配'
print(new_value)
印刷品: <_sre.sre\u匹配object;span=(77,85),match='10191.53'>
我想使用对象中的match='10191.53'来执行算术运算。如何从对象中提取该值?你知道吗
我已经阅读了regex文档,并尝试了str()int()和float()函数的多种不同组合来操纵对象的值,使其最终成为float。你知道吗
我能理解为什么float()不能用在这个上,但不能理解如何从对象中获取10191.53的值,以便在数学运算中使用它。你知道吗
如果模式与要转换为float的字符串完全匹配,则可以调用
以字符串形式返回搜索结果并将其转换为浮点(docs)。m、 组(0)以字符串形式返回整个匹配项。另见this answer。你知道吗
正如人们在评论中指出的,您需要使用
此方法的输出取决于正则表达式的语法。为了
groups
工作,需要在正则表达式中包含捕获组,否则groups
将始终为空,即使表达式与输入匹配。你知道吗TLDR
确保表达式捕获了所需的文本,并使用方法
groups
从匹配中提取它。你知道吗相关问题 更多 >
编程相关推荐