这里是Python新手
我想我已经编写了一些非常简单的代码,只从接收到的字符串中提取数字
它似乎在工作,除了我试图将检索到的数字存储在NumPy数组中以供进一步处理,但我看到的只是“古怪”的数字
import numpy as np
#import array
apiString = " 'open': 1.082865 'close': 1.08287 'min': 1.08266 'max': 1.08295 'volume': 888"
np_Myarr01 = np.empty([1,5], dtype=float)
def Find_numbers():
for word in apiString.split():
try:
thisNumber=float(word)
print ("Found", thisNumber)
Store_number(thisNumber)
except ValueError:
pass
return
def Store_number(thisNumber):
np.append(np_Myarr01, thisNumber)
print("store " + str(thisNumber))
return
# START OF MAIN PROGRAM
Find_numbers()
print (np_Myarr01)
***输出***************************
Found 1.082865
store 1.082865
Found 1.08287
store 1.08287
Found 1.08266
store 1.08266
Found 1.08295
store 1.08295
Found 888.0
store 888.0
[[ 2.17306514e-316 0.00000000e+000 6.92674292e-310 6.92674292e-310
2.37151510e-322]]
我希望数组能够读取
[[ 1.082865 1.08287 1.08266 1.08295 888.0]]
任何帮助都将不胜感激。谢谢大家!
除了@barmar的注释外,如果您的API字符串始终如示例所示,则可以在拆分(使用切片)后提取其他每一项,并让NumPy处理其余的转换:
您可以混合使用
str.split()
和re.search
从apiString
中提取数字:这:
将产生:
详情:
1)
apiString.split()
将在原始字符串中有空格的字符串列表中拆分字符串2)
re.search('[a-zA-Z]', x)
将返回True
,如果x
中存储的字符串包含大写或小写字母(即不是数字)(这也是我们在这里使用not
的原因)3)
float(x)
将字符串'1.808'
转换为float类型相关问题 更多 >
编程相关推荐