我需要知道如何提取方括号和撇号中的浮点数。
这是我的data.state
$('#home_solutions_list li').mouseenter(function() {
link = $(this).find('.home_view_products a');
link.stop(true, true).animate({
'color': '#636a6d'
}, 'fast');
link.find('span').animate({
'left': '20px',
}, 'fast');
});
$('#home_solutions_list li').mouseleave(function() {
link = $(this).find('.home_view_products a');
link.stop(true, true).animate({
'color': '#1a92d0'
}, 'fast');
link.find('span').animate({
'left': '5px'
}, 'fast');
});
我只想提取数字94.9838180542,这就是我写的:
state: {
"command_args" : {
"position" : 94.9838180542
},
"error_flags" : 0
"op_mode" : 4
}
我的输出是:
182 splitData = (data.state.split("}")[0])
183 splitdata = ( re.findall("\d+\.\d+",splitData) ) #Floating Point Number
184 print(splitdata)
必需输出:
['94.9838180542']
如何删除' []'和撇号,并从中提取整个浮点数?
谢谢
答案 0 :(得分:1)
要严格回答提出的问题,我会告诉您如何解决问题的代码。
print(float(splitdata[0]))
然而,如果有多个浮点数,此代码将无效,所以我建议这样做:
print([float(item) for item in splitdata])
第二个代码位不会删除[],但如果文本中有多个浮点数,它会将所有浮点数转换为正确的浮点数。
最后请注意:您确实应该确保输入的json是正确的并使用Python中内置的json函数:
答案 1 :(得分:0)
re.findall返回字符串列表
if len(splitdata) > 0:
num = float(splitdata[0])