1.经纬度的整数部分是度分秒中的度。
2.经纬度的小数部分×60得到的整数部分就是度分秒中的分。
3.再用最后经纬度的小数部分×60,得到的就是度分秒中的秒。
keyword = re.sub('(\-?\d{1,4})°(\d{1,4})′(\d{1,4})\.?(\d{1,4}?)″',
lambda x: str(float(x.group(1)) + float(x.group(2)) / 60 + (float(x.group(3)) + float(x.group(4))/10*len(x.group(4)) if len(x.group())>3 else 0) / 3660 ), keyword)
结果
东经41°8′32.73″,北纬51°9′86.73″
转换成
东经41.14606557377049,北纬51.17748633879781