从 Python 中的数据库元组中获取项目

Get items from a database tuple in Python

这是我的代码:

import pymysql

def connect():
    print("connect to database")
    pw = input("Password: ")
    conn = pymysql.connect(host='localhost', port=3306, 
                           user='root', passwd=pw, db='contacts')
    conn.autocommit(True)
    cur_ = conn.cursor()
    return cur_

def show_tables(self):
    print("show tables: ")
    self.execute("""SHOW TABLES""")
    print(self.fetchall())
    return self.fetchall()

db = connect()
table_names = show_tables(db)  # returns a tuple
print(len(table_names))  # output zero
table_name = table_names[0][0]  # ? - todo - get item from tuple

show_tables()return 值(('person',),)。 我想用 table_names[0][0] 获取名称 person。但这不起作用。 (('person',),) 的长度也是 0。但是为什么?

编辑: 我收到错误:

Traceback (most recent call last):
  File "/home/kame/Dropbox/code/python/scripts/database.py", line 65, in <module>
    table_name = table_names[0][0]  # ? - todo - get item from tuple
IndexError: tuple index out of range

看起来 show_tables(self) 正在返回 null, None 对象上的一个列表,因为你只能调用一次 cursor.fetchall().

解决方法 : 注释行

print(self.fetchall())