我一直在努力创建一个基本的应用程序,查询我拥有的记录数据库,以建议我下一步该听什么。我当前的草稿要求用户输入他们正在收听的当前唱片集,然后查询数据库以返回相关流派,以及该流派中的其他艺术家。在
我使用c.execute
和c.fetchone()
命令两次返回艺术家和流派作品。当我试图设置reclist = c.fetchall()
时,代码失败。在
整个过程中最糟糕的部分是我让代码工作了几分钟,然后再回去修改一些东西。我想我已经学会了如何做出“无害”的改变。在
数据库的架构:
sqlite> .schema
CREATE TABLE album (
id INTEGER PRIMARY KEY,
album TEXT
);
CREATE TABLE genre (
id INTEGER PRIMARY KEY,
genre TEXT
);
CREATE TABLE artist (
id INTEGER PRIMARY KEY,
artist TEXT
);
CREATE TABLE aag (
artist_id INTEGER,
album_id INTEGER,
genre_id INTEGER
);
完整的Python代码如下:
^{pr2}$
我检查了几次代码,并尝试设置变量
genre_return = c.fetchone()[0]
。这似乎是通过sqlite而不是之前传递的元组将实际的表值传递回。在我通过将}来测试这个方法。查询在这两种情况下都成功地工作。在
genre_return
设置为基于genre.genre
的选择以及{我无法解释为什么
album_return = str(c.fetchone())
代码能够成功地查询数据库(作为一个元组),而我的genre_return
不能,但我的问题似乎已经解决了。在这是一次很好的学习经历。希望这可以帮助其他尝试在python中使用sqlite的人。在
相关问题 更多 >
编程相关推荐