1

我有一个名为的表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 |                |
-----------------------------------------------------------------------------

MySQLdb在我的 Python 脚本中使用导入。该表的目的是存储(您可以猜到,但为了清楚起见)位置坐标(但仅当我没有特定位置的坐标时)。

我将在我的 Python 程序中查询这个表,看看我是否已经有了预先请求位置的坐标。我这样做是为了加快geopy询问 Google 地理定位服务的软件包的使用速度。

如何存储与位置相对应的返回浮点数?到目前为止,我有以下内容:

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)

该代码有效(嗯,不是真的......)但我不知道如何将返回的坐标转换为单独的浮点变量。

你能帮我吗?

4

1 回答 1

4

当你这样做时cur.fetchone(),你需要将结果存储在某处:

row = cur.fetchone()
print row[0], row[1]

现在row[0]将包含纬度,row[1] 是经度。

如果在连接时这样做:

cur = con.cursor(mdb.cursors.DictCursor)

然后,您可以使用字典按名称引用列:

row = cur.fetchone()
print row["latitude"], row["longitude"]
于 2013-06-14T17:41:19.557 回答