我想要一个像
这样的结构var={userid:{bookid:rating,book2:rating,.....}}
我没有得到如何查询它。 我得到这样的结构: - 例如: -
var={1:{101:2}}{1:{102:1}}
但我想要
var={1:{101:2,102:1}}
我从数据库中获取userid,bookid,ratings
的所有值。
而且我想知道如何访问这些记录
实际上我正在创建一个推荐引擎,所以我需要将每个用户与其他每个用户进行比较。如果有人可以帮我这个 三江源
答案 0 :(得分:0)
回答关于如何创建这样一个结构的第一个问题。您可以通过以下行创建类似这样的词典:
a = {}
a[1] = {}
a[1][101] = 2
a[1][102] = 1
print a # output: {1: {101: 2, 102: 1}}
(它实际上是字典中的字典)
回答您的问题如何访问结果: 以下是访问查询结果的代码示例。
import datetime
import mysql.connector
cnx = mysql.connector.connect(user='scott', database='employees')
cursor = cnx.cursor()
query = ("SELECT first_name, last_name, hire_date FROM employees "
"WHERE hire_date BETWEEN %s AND %s")
hire_start = datetime.date(1999, 1, 1)
hire_end = datetime.date(1999, 12, 31)
cursor.execute(query, (hire_start, hire_end))
for (first_name, last_name, hire_date) in cursor:
print("{}, {} was hired on {:%d %b %Y}".format(
last_name, first_name, hire_date))
cursor.close()
cnx.close()
(此示例取自此页面:https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-select.html)
这也有帮助:https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html