从 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())
这是我的代码:
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())