簡體   English   中英

如何去掉 windows output 中的“{}”? (蟒蛇/SQLite3)

[英]How do I get rid of the "{}" in my windows output? (Python / SQLite3)

我正在創建一個抽認卡游戲來詢問 CompSci 問題。

我正在嘗試檢索一個隨機的“CardFront”,它充當存儲在 SQLite3 數據庫表中的 varchar,以及 output 導致消息框“提示”用戶提出問題。

我似乎無法弄清楚的唯一問題是為什么它在語句周圍帶有波浪形括號返回?

from tkinter import *
import sqlite3
from tkinter import messagebox

def retrieve_random_cardfront():
    conn = sqlite3.connect('flashcards.db')
    cursor = conn.cursor()
    cursor.execute("SELECT CardFront FROM FLASHCARDS ORDER BY RANDOM() LIMIT 1;")
    result = cursor.fetchall()
    conn.close()
    messagebox.showinfo(title='Test', message=result[0])

當前 Output

我認為您可以實現類似這樣的操作以刪除該“{}”。 但由於我不知道使用 SQLite,我可以給你一個更准確的答案。

data = "{Data}"
data = data.replace(data[0], "")
data = data.replace(data[-1], "")
print(data)

當 tkinter 需要一個字符串但你傳遞了一個列表時,它會添加花括號。 正確的解決方案是在將列表與小部件一起使用之前將其轉換為字符串。 以下示例顯示了一種可能的方式:

message = ",".join(result[0])
messagebox.showinfo(title='Test', message=message)

您可以嘗試將此作為修復,但此處發生的情況尚不清楚。 也許檢查結果__repr__的 __repr__?

from tkinter import *
import sqlite3
from tkinter import messagebox

def retrieve_random_cardfront():
    conn = sqlite3.connect('flashcards.db')
    cursor = conn.cursor()
    cursor.execute("SELECT CardFront FROM FLASHCARDS ORDER BY RANDOM() LIMIT 1;")
    result = cursor.fetchall()
    conn.close()
    messagebox.showinfo(title='Test', message=str(result[0]).strip('{').strip('}'))

暫無
暫無

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

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