これは比較的簡単なはずだと思いますが、理解できません。座標を表す文字列が+27.5916+086.5640
あり、経度と緯度の間にコンマを入れる必要があるので、を取得し+27.5916,+086.5640
ます。
APIを調べていますが、これに対応できるものが見つからないようです。
私が書いているプログラムはPython3.Xをサポートしていないので、ああ、私はPython2.7.3を使用する必要があります。
座標がc
、の場合、これは機能します。ただし、これは負の値では機能しないことに注意してください。ネガにも対処する必要がありますか?
",+".join(c.rsplit("+", 1))
ネガにも対処します。
import re
parts = re.split("([\+\-])", c)
parts.insert(3, ',')
print "".join(parts[1:])
出力
+27.5916,+086.5640'
そしてネガの場合:
>>> c = "+27.5916-086.5640"
>>> parts = re.split("([\+\-])", c)
>>> parts.insert(3, ',')
>>> "".join(parts[1:])
'+27.5916,-086.5640'
カンマがすでに存在する場合、このメソッドはカンマを処理します。
str = '-27.5916-086.5640'
import re
",".join(re.findall('([\+-]\d+\.\d+)',str))
'-27.5916,-086.5640'
2番目のコンポーネントは、先行ゼロと固定小数点以下の桁数でフォーマットされているように見えるので、これはどうでしょうか。
>>> s='+27.5916+086.5640'
>>> s[0:-9]+','+s[-9:]
'+27.5916,+086.5640'
正規表現の仕事のように聞こえます:
Python 2.7.3 (default, Aug 27 2012, 21:19:01)
[GCC 4.2.1 Compatible Apple Clang 4.0 ((tags/Apple/clang-421.0.57))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> coords = '+27.5916+086.5640'
>>> lat, long = re.findall('[+-]\d+\.\d+', coords)
>>> ','.join((lat, long))
'+27.5916,+086.5640'