2015-06-27 52 views
0
regex= '<th scope="row" width="48%">52wk Range:</th><td class="yfnc_tabledata1"><span>(.+?)</span> - <span>(.+?)</span></td>' 
    pattern = re.compile(regex) 
LBUB = re.findall(pattern,htmltext) 

我想在Python中进行基本数据抓取并对返回的实数执行一些计算。我已经展示了该程序的一小部分摘要,以便您可以了解基本想法。我希望它读取一个html文件并返回一定的数字。 问题是,真正的数字是这样一个字符串变量内返回...如何从Python中的字符串提取多个浮点数?

[('90.77', '134.54')] 

我想从变量中提取的号码,这样他们可以作为单独的浮点型变量。 有人知道如何从字符串变量中提取两个实数,基本上摆脱了')],这是在Python 2.7.10

回答

1

如果你正在获取数组,然后你可以使用浮点数()函数,并把在数组的索引,例如:

StrFloats = [("90.77","134.54")] 
FltNewNums = {} 
IntInd = 0 
for IntX in range(0,len(StrFloats)): 
    for IntY in range(0,len(StrFloats[IntX])): 
     FltNewNums[IntInd] = float(StrFloats[IntX][IntY]) 
     IntInd += 1 

那么你有浮动变量数组

我不得不做出一些改变。忘了元组:/ 这应该工作:)

+0

它无法处理字符串中的符号,所以它只是作为错误出现。 –

+0

什么符号,你得到他们在问题中的阵列? [('90 .77','134.54')] –

+1

不错的,它的工作原理。谢谢 –

0

这看起来像工作的map

list(map(lambda t: (float(t[0]), float(t[1])), LBUB)) 

为了避免类型错误而铸造浮动,您可以使用较窄的捕获组。

喜欢的东西:

(\d+\.\d+) 

反正,用正则表达式解析HTML通常是not a good idea

相关问题