我有这个学生资料库,其中有四列:first_name, middle_name, last_name, school, birth_year
。我已经使用SELECT语句成功读取了数据库的内容,但是在这里我被困在这里:
如何通过这样的格式打印查询结果:first_name middle_name(if available) last_name was born in birth_year
?因此,对于查询中的每一行,预期结果都应这样做:Aida Blue was born in 1985
。
现在,如果我运行print(all_rows)
代码,将打印出如下查询结果:[{'first_name':'Aida', 'middle_name': None, 'last_name': 'Blue', 'school': 'Washington', 'birth_year': 1981}, {...}, ....]
下面是我的代码尝试解决此问题的方法:
db = cs.SQL("sqlite:///students.db")
if __name__ == '__main__':
if len(sys.argv) != 2:
print("Usage: python student_school.py school")
sys.exit()
else:
school = str(sys.argv[1])
all_rows = db.execute("SELECT * FROM students WHERE school=?", school)
first = all_rows[:][0] #I want to pick up the first col
middle = all_rows[:][1] #if value <> None?
last= all_rows[:][2]
birth_year = all_rows[:][4]
print(first_name, " " , middle_name, " ", last_name, "was born in ", birth_year \n)
有人可以请教吗?谢谢!
all_rows
的字典变量列表。每个字典代表一个学生记录。
(单个空格)。无需显式编写" "
。与之相同,\n
无需显式写入'\ n'。在此处阅读更多内容https://docs.python.org/3/library/functions.html#print。db = cs.SQL("sqlite:///students.db")
if __name__ == '__main__':
if len(sys.argv) != 2:
print("Usage: python student_school.py school")
sys.exit()
else:
school = str(sys.argv[1])
all_rows = db.execute("SELECT * FROM students WHERE school=?", school)
for student in all_rows:
print(student['first_name'], student['middle_name'] if student['middle_name'] else '', student['last_name'], "was born in", student['birth_year'])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句