簡體   English   中英

用某種格式打印出sqlite數據庫查詢的結果

[英]Print out the result of sqlite database query with a format

我有這個學生數據庫有四列: first_name, middle_name, last_name, school, birth_year 我已經使用 SELECT 語句成功讀取了 db 的內容,但這里是我陷入困境的地方:

如何使用如下格式打印查詢結果: 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變量字典列表。 每個字典代表一個學生記錄。
  • 您可以編寫一個 for 循環來迭代它並打印每個循環。
  • 同樣在打印語句中,當你寫 ',' 時,它會自動把分隔符放在 (單個空間)。 沒有必要明確寫出" " \\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'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM