将GPS点分解为经纬度

0 投票
2 回答
1954 浏览
提问于 2025-04-16 13:36

给定以下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 的文档

撰写回答