相当陌生的python并寻求一些帮助以使其符合我的意愿。我正在开发一个小应用程序,它将使用数据库来填充各种组合框,这些组合框都链接到各种liststore对象。我可以从MySQL中提取数据,但在尝试将值插入列表存储时,它们都崩溃了。我要么结束了:
ValueError: row sequence has the incorrect number of elements
我的liststore对象是针对单行gchararray配置的
我的代码如下所示:
mysqldb = mysql.connector.connect(**mysql_config)
cnx = mysqldb.cursor()
cnx.execute("SHOW TABLES")
for (table_name, ) in cnx:
dblist.append(''.join(table_name))
for i in range(len(dblist)):
self.list_customers.append(list(dblist[i]))
cell = Gtk.CellRendererText()
self.combo_systems.pack_start(cell, False)
self.combo_systems.set_active(0)
如果我插入一个完整性检查:
dblist = [['1'], ['2'], ['3']]
之前
for i in range(len(dbslit)):
self.list_customers.append(list(dblist[i]))
它工作正常。
答案 0 :(得分:1)
这将采用与[['1'], ['2'], ['3']]
相同的格式:
cnx = mysqldb.cursor()
cnx.execute("SHOW TABLES")
tables = cnx.fetchall() # [('table1',), ('table2',), ...]
self.list_customers = [list(rec) for rec in tables]
...
或只是
self.list_customers = [list(rec) for rec in cnx.fetchall()]
虽然你可能只是
self.list_customers = cnx.fetchall()
如果gtx界面没有坚持列表列表..