繁体   English   中英

如何在Python 3中解决创建SQL Lite数据库并为第一行名称和年龄打印十六进制的Traceback错误?

[英]How to I resolve the Traceback error for creating SQL Lite database and printing a hex for first row name&age in python 3?

尝试在Python中创建SQL数据库并插入一些基本数据,然后在数据库中返回名称/年龄的第一行的十六进制值,然后在python中进行打印,但始终收到元组错误。

谢谢

import sqlite3

conn = sqlite3.connect('Exercise_Ages.sqlite')
cur = conn.cursor()

cur.execute('''DROP TABLE IF EXISTS Ages''')

cur.executescript('''CREATE TABLE Ages (name VARCHAR(128), age INTEGER);
DELETE FROM Ages;
INSERT INTO Ages (name, age) VALUES ('Trudie', 18);
INSERT INTO Ages (name, age) VALUES ('Marley', 26);
INSERT INTO Ages (name, age) VALUES ('Elshan', 17);
INSERT INTO Ages (name, age) VALUES ('Reese', 32);
INSERT INTO Ages (name, age) VALUES ('Lex', 31);
INSERT INTO Ages (name, age) VALUES ('Briagha', 16);''')

conn.commit()

sqlstr = 'SELECT hex(name || age) AS name FROM Ages ORDER BY age DESC LIMIT 10'


for row in cur.execute(sqlstr):
    print(str(row[0]), row[1])

cur.close()
Traceback (most recent call last):

File "<ipython-input-63-ddbebe584cc3>", line 22, in <module>
    print(str(row[0]), row[1])

IndexError: tuple index out of range

SELECT hex(name || age) AS name FROM Ages为每一行检索一列,并且您也尝试使用以下命令打印第二列:

print(str(row[0]), row[1])

只需执行以下操作:

print(str(row[0]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM