2015-10-05 110 views
0

检索数据,我有以下数据库表:Python的SQL查询从关系数据库

SENSORS: sensor_id, type_id, location_id, pin_id 
SENSOR_TYPES:type_id, type_name, parameter 
LOCATIONS: location_id, room 
PI_PINS: pin_id, broadcom, wiring_pi, description 

关系已通过X_ID场传感器和其他三个表之间建立。

如何构建python代码来运行SQL查询,该查询将返回包含{sensor_id:type_name}的字典?我认为下面的查询应该可以工作,但我不知道如何在Python中包装它以返回字典。

SELECT sensors.sensor_id, sensor_types.type_name 
FROM sensors 
INNER JOIN sensor_types 
ON sensors.type_id=sensor_types.type_id 

回答

0

好的,原来这里有一个dict光标。为后代,这是我的工作代码:

#!/usr/bin/env python 

import MySQLdb 

# Open databse connection 
db = MySQLdb.connect(host="****",user="****",passwd="****",db="****") 

#Prepare a cursor object using cursor() method 
cur = db.cursor(MySQLdb.cursors.DictCursor) 

#Execute SQL query using execute() method 
cur.execute("SELECT sensor_id, sensor_types.type_name FROM sensors INNER JOIN sensor_types ON sensors.type_id=sensor_types.type_id") 

#Fetch the results 
data = cur.fetchall() 

#Print out results 
for row in data: 
    print row["sensor_id"],row["type_name"] 

#Disconnect from server 
db.close()