0
Dies ist mein Code:Elemente aus einer Datenbank Tupel in Python Get
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()
Rückkehr der Wert (('person',),)
. Ich möchte den Namen person
mit table_names[0][0]
bekommen. Aber das funktioniert nicht. Auch die Länge von (('person',),)
ist 0. Aber warum?
Edit: bekomme ich den Fehler:
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
Sie sagen, "das nicht funktioniert". Was passiert eigentlich? – user2357112
Hilft [diese Antwort] (http://stackoverflow.com/a/8363828/771848)? – alecxe
Wenn ich 'p = (('person',),)' und dann 'len (p)' mache, bekomme ich '1' wie erwartet. 'p [0] [0]' gibt auch "Person" (wieder, wie erwartet). Sind Sie sicher, dass Sie das Tupel zurückgeben, von dem Sie glauben, dass es zurückkehrt? – mgilson