python中的简单字符串操作:提取所需的数字

时间:2014-05-05 16:12:46

标签: python xml parsing xml-parsing

这是python中的简单字符串操作:

string = '<longitude>-170.794865296</longitude>'

如何提取-170.794865296? 寻找简单易行的方法。

5 个答案:

答案 0 :(得分:6)

您可以使用标准库中的xml.etree.ElementTree

>>> import xml.etree.ElementTree as etree
>>> s = '<longitude>-170.794865296</longitude>'
>>> etree.fromstring(s).text
'-170.794865296'

答案 1 :(得分:2)

string.split(">")[1].split("<")[0]

无需导入任何内容

答案 2 :(得分:1)

import re
print re.findall(r'[-0-9.]+', '<longitude>-170.794865296</longitude>')

答案 3 :(得分:0)

如果您的数字都是使用'<longitude>...</longitude>'标记格式化的,那么您可以使用字符串切片:

start = len('<longitude>')
end = -len('</longitude>')
print float('<longitude>-170.48738723</longitude>'[start:end])

答案 4 :(得分:0)

使用解析模块

$ pip install parse

简洁地给你留下深刻印象:

>>> from parse import parse
>>> parse("<lon>{:f}</lon>", "<lon>-170.794865296</lon>").fixed[0]
-170.794865296

逐步解释

>>> from parse import parse
>>> text = '<lon>-170.794865296</lon>'
>>> templ = "<lon>{:f}</lon>"
>>> res = parse(templ, text)
>>> res
<Result (-170.794865296,) {}>
>>> res.fixed[0]
-170.794865296
>>> type(res.fixed[0])
float

为字典键指定值:

>>> parse("<lon>{pnt_lat:f}</lon>", "<lon>-170.794865296</lon>").named["pnt_lat"]
-170.794865296