2015-10-05 111 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()