将GPS点分解为经纬度
给定以下GPS点的字符串表示...
(40.714353, -74.005973)
我该如何使用Python对这个字符串进行分割,以便把纬度和经度分开提取出来,并且不带任何多余的字符(比如空格和括号)呢?
2 个回答
8
你可以使用 ast.literal_eval()
来解析这个字符串:
>>> import ast
>>> coord = "(40.714353, -74.005973)"
>>> ast.literal_eval(coord)
(40.714353000000003, -74.005972999999997)
6
你不需要用到正则表达式:
>>> str = "(40.714353, -74.005973)"
>>> tuple(float(x) for x in str.strip('()').split(','))
(40.714353, -74.005973)
如果你想要字符串而不是数字,可以用 x.strip()
来替代 float(x)
。
如果要用正则表达式解决问题,可以这样做:
>>> import re
>>> m = re.match(r"^\(([-\d.]+), ([-\d.]+)\)$", str)
>>> m.group(1)
'40.714353'
>>> m.group(2)
'-74.005973'
这个方法使用了捕获组来提取信息。
你也可以查看 re
的文档。