如何从多个字符包围的字符串中提取浮点数?
How to extract floating point numbers from strings surrounded by multiple characters?
我需要知道如何提取方括号和撇号内的浮点数。
这是我的data.state
state: {
"command_args" : {
"position" : 94.9838180542
},
"error_flags" : 0
"op_mode" : 4
}
我只想提取数字 94.9838180542,这就是我写的:
182 splitData = (data.state.split("}")[0])
183 splitdata = ( re.findall("\d+\.\d+",splitData) ) #Floating Point Number
184 print(splitdata)
我的输出是:
['94.9838180542']
所需输出:
94.9838180542
如何删除“[]”和撇号并从中提取整个浮点数?
谢谢
re.findall returns 字符串列表
if len(splitdata) > 0:
num = float(splitdata[0])
为了严格回答提出的问题,我会给出如何修复它的代码。
print(float(splitdata[0]))
但是,如果有多个浮点数,这段代码将不起作用,所以这就是我推荐的原因:
print([float(item) for item in splitdata])
第二个代码位不会删除 [],但如果文本中有多个浮点数,它会将它们全部正确转换为浮点数。
最后注意:你真的应该确保你输入的 json 是正确的,并使用 Python:
中内置的 json 函数
我需要知道如何提取方括号和撇号内的浮点数。
这是我的data.state
state: {
"command_args" : {
"position" : 94.9838180542
},
"error_flags" : 0
"op_mode" : 4
}
我只想提取数字 94.9838180542,这就是我写的:
182 splitData = (data.state.split("}")[0])
183 splitdata = ( re.findall("\d+\.\d+",splitData) ) #Floating Point Number
184 print(splitdata)
我的输出是:
['94.9838180542']
所需输出:
94.9838180542
如何删除“[]”和撇号并从中提取整个浮点数?
谢谢
re.findall returns 字符串列表
if len(splitdata) > 0:
num = float(splitdata[0])
为了严格回答提出的问题,我会给出如何修复它的代码。
print(float(splitdata[0]))
但是,如果有多个浮点数,这段代码将不起作用,所以这就是我推荐的原因:
print([float(item) for item in splitdata])
第二个代码位不会删除 [],但如果文本中有多个浮点数,它会将它们全部正确转换为浮点数。
最后注意:你真的应该确保你输入的 json 是正确的,并使用 Python:
中内置的 json 函数