使用MySQLdb返回值- Python



我有一个名为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程序中查询这个表,看看我是否已经有一个预先请求的位置的坐标。我这样做是为了加快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)

代码工作(好吧,不是真的…),但我不知道如何得到返回的坐标到单独的浮动变量

你能帮忙吗?

当您执行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"]

最新更新