Python SQL 查询从关系数据库中检索数据
Python SQL query to retrieve data from relational DB
我有以下数据库表:
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 个字段在 SENSORS 和其他三个表之间建立关系。
我如何构造 python 代码到 运行 一个 SQL 查询,该查询将 return 一个包含 {sensor_id:type_name 的字典}?我认为以下查询应该有效,但我不确定如何将其包装在 python 到 return 字典中。
SELECT sensors.sensor_id, sensor_types.type_name
FROM sensors
INNER JOIN sensor_types
ON sensors.type_id=sensor_types.type_id
好的,原来有一个字典游标。对于后代,这是我的工作代码:
#!/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()
我有以下数据库表:
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 个字段在 SENSORS 和其他三个表之间建立关系。
我如何构造 python 代码到 运行 一个 SQL 查询,该查询将 return 一个包含 {sensor_id:type_name 的字典}?我认为以下查询应该有效,但我不确定如何将其包装在 python 到 return 字典中。
SELECT sensors.sensor_id, sensor_types.type_name
FROM sensors
INNER JOIN sensor_types
ON sensors.type_id=sensor_types.type_id
好的,原来有一个字典游标。对于后代,这是我的工作代码:
#!/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()