如何将数据库查询结果中的两个字段分两行打印?
解决方案
你的代码里fetchone()已经正确获取了同一随机行的question和answer字段,它返回的是一个包含两个元素的元组(比如("问题内容", "答案内容"))。要将两个字段分两行独立打印,直接访问元组的对应元素即可,不需要用for循环遍历:
方法1:通过索引访问
mycursor.execute("SELECT question, answer FROM questions ORDER BY RAND() LIMIT 1") myresult = mycursor.fetchone() # 打印第一个元素(question) print(myresult[0]) # 打印第二个元素(answer) print(myresult[1])
方法2:拆包赋值(更直观)
mycursor.execute("SELECT question, answer FROM questions ORDER BY RAND() LIMIT 1") # 直接将元组的两个元素赋值给变量 question, answer = mycursor.fetchone() print(question) print(answer)
如果需要更清晰的输出格式,还可以加上标识:
print(f"问题:{question}") print(f"答案:{answer}")
补充说明
原代码的for row in myresult:其实也会遍历元组的两个元素并分两次打印,但用直接访问的方式更明确,也能避免对遍历逻辑的误解。ORDER BY RAND() LIMIT 1已经保证每次只获取随机的一行,所以两个字段必然属于同一记录。
内容的提问来源于stack exchange,提问作者Zac Attack
相关产品推荐
相关产品推荐

