首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从python漂亮表格中删除重复的行?

如何从python漂亮表格中删除重复的行?
EN

Stack Overflow用户
提问于 2021-01-21 18:21:00
回答 1查看 140关注 0票数 0

我使用以下代码从mysql数据库输入数据,并在python shell中显示它。我使用“漂亮”来使它看起来很漂亮。但是现在我遇到了这个bug,如果我在一次运行中多次调用display函数,来自漂亮表格的行会不断重复。请帮帮我!

代码语言:javascript
运行
复制
import mysql.connector

from prettytable import PrettyTable

x = PrettyTable()

x.field_names = ["Name","AccNo","PhoneNumber","Deposit","Gmail"]

def displayAll():
    mycursor.execute("select * from accountsxyz")
    for i in mycursor:
        x.add_row(i)
    print(x)

if ch == '5':
    
        displayAll()

当我运行上面的程序时,如果我多次调用displayAll函数,就会得到重复的行!以下是上述code__的输出

代码语言:javascript
运行
复制
OUTPUT:::::----

#calling the displayALL function 1st time ::

'''To go back to main menu,press any key+enter (or) just enter:

    MAIN MENU
    1. NEW ACCOUNT
    2. DEPOSIT AMOUNT
    3. WITHDRAW AMOUNT
    4. BALANCE ENQUIRY
    5. ALL ACCOUNT HOLDER LIST
    6. CLOSE AN ACCOUNT
    7. MODIFY AN ACCOUNT
    8. EXIT
    Select Your Option (1-8) 
5
+-------+-------+-------------+---------+---------------+
|  Name | AccNo | PhoneNumber | Deposit |     Gmail     |
+-------+-------+-------------+---------+---------------+
| AYUSH |   1   |    123456   |   1234  | AQS@GMAIL.COM |
+-------+-------+-------------+---------+---------------+

#calling the displayALL function 2nd time in the same run ::

To go back to main menu,press any key+enter (or) just enter:

    MAIN MENU
    1. NEW ACCOUNT
    2. DEPOSIT AMOUNT
    3. WITHDRAW AMOUNT
    4. BALANCE ENQUIRY
    5. ALL ACCOUNT HOLDER LIST
    6. CLOSE AN ACCOUNT
    7. MODIFY AN ACCOUNT
    8. EXIT
    Select Your Option (1-8) 
5
+-------+-------+-------------+---------+---------------+
|  Name | AccNo | PhoneNumber | Deposit |     Gmail     |
+-------+-------+-------------+---------+---------------+
| AYUSH |   1   |    123456   |   1234  | AQS@GMAIL.COM |
| AYUSH |   1   |    123456   |   1234  | AQS@GMAIL.COM |
+-------+-------+-------------+---------+---------------+
To go back to main menu,press any key+enter (or) just enter:5

MAIN MENU
1. NEW ACCOUNT
2. DEPOSIT AMOUNT
3. WITHDRAW AMOUNT
4. BALANCE ENQUIRY
5. ALL ACCOUNT HOLDER LIST
6. CLOSE AN ACCOUNT
7. MODIFY AN ACCOUNT
8. EXIT
Select Your Option (1-8) 

5
+-------+-------+-------------+---------+---------------+
|  Name | AccNo | PhoneNumber | Deposit |     Gmail     |
+-------+-------+-------------+---------+---------------+
| AYUSH |   1   |    123456   |   1234  | AQS@GMAIL.COM |
| AYUSH |   1   |    123456   |   1234  | AQS@GMAIL.COM |
| AYUSH |   1   |    123456   |   1234  | AQS@GMAIL.COM |
+-------+-------+-------------+---------+---------------+
To go back to main menu,press any key+enter (or) just enter:'''
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-21 18:25:59

一种简单的解决方法是在displayAll中创建表

代码语言:javascript
运行
复制
def displayAll():
    x = PrettyTable()
    x.field_names = ["Name","AccNo","PhoneNumber","Deposit","Gmail"]

    mycursor.execute("select * from accountsxyz")
    for i in mycursor:
        x.add_row(i)
    print(x)

编辑:更简单的是:

代码语言:javascript
运行
复制
from prettytable import from_db_cursor

def displayAll():
    mycursor.execute("select * from accountsxyz")
    print(from_db_cursor(mycursor))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65825359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档