我有一个名为coords
的表,它被定义为:
mysql> describe coords;
+-----------+--------------+------+-----+------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| location | varchar(150) | NO | UNI | NULL | |
| latitude | float(20,14) | YES | | 0.00000000000000 | |
| longitude | float(20,14) | YES | | 0.00000000000000 | |
-----------------------------------------------------------------------------
我在Python脚本中使用MySQLdb
导入。此表的目的是存储(您可以猜测,但为了清楚起见)位置坐标(但仅当我没有已经针对特定位置的坐标时)。
我将在我的Python程序中查询此表,看看我是否已经拥有预先请求位置的坐标。我这样做是为了加快使用询问Google地理定位服务的geopy
软件包。
如何存储与某个位置对应的返回浮动?到目前为止,我有以下内容:
myVar = cur.execute("SELECT latitude, longitude FROM coords WHERE location ='" + jobLocation + "';")
if myVar == 1:
print(cur.fetchone())
else:
try:
_place, (_lat, _lon) = geos.geocode(jobLocation, region='GB', exactly_one=False)
print("%s: %.5f, %.5f" % _place, (_lat, _lon))
except ValueError as err:
print(err)
代码有效(好吧,不是真的......)但我不知道如何将返回的坐标转换为单独的浮点变量。
你能帮忙吗?
答案 0 :(得分:4)
执行cur.fetchone()
时,您需要将结果存储在某处:
row = cur.fetchone()
print row[0], row[1]
现在row[0]
将包含纬度,行[1]将包含经度。
如果您在连接时执行此操作:
cur = con.cursor(mdb.cursors.DictCursor)
然后您可以使用字典按名称引用列:
row = cur.fetchone()
print row["latitude"], row["longitude"]