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

时间:2016-04-26 18:46:04

标签: python mysql database tuples pymysql

这是我的代码:

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()返回值(('person',),)。 我希望person的名称为table_names[0][0]。但这不起作用。 (('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

1 个答案:

答案 0 :(得分:2)

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

解决方案:对该行进行评论

print(self.fetchall())