如何从多个字符包围的字符串中提取浮点数?

时间:2017-03-13 00:34:12

标签: python regex floating-point extraction

我需要知道如何提取方括号和撇号中的浮点数。

这是我的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']

如何删除' []'和撇号,并从中提取整个浮点数?

谢谢

2 个答案:

答案 0 :(得分:1)

要严格回答提出的问题,我会告诉您如何解决问题的代码。

print(float(splitdata[0]))

然而,如果有多个浮点数,此代码将无效,所以我建议这样做:

print([float(item) for item in splitdata])

第二个代码位不会删除[],但如果文本中有多个浮点数,它会将所有浮点数转换为正确的浮点数。

最后请注意:您确实应该确保输入的json是正确的并使用Python中内置的json函数:

https://docs.python.org/2/library/json.html

答案 1 :(得分:0)

re.findall返回字符串列表

if len(splitdata) > 0:
    num = float(splitdata[0])