繁体   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