我的wxPython应用程序有一个带有CheckListBox的窗口,它显示MySQL数据库中保存的所有项目。对于选定的员工,应勾选他们参与的项目。我试图使用以下方法勾选方框: -
indices = [i for i in range(len(lst)) if lst[i][0] in prjs]
self.checkListBox1.SetChecked(indices)
其中lst是cursor.fetchall()返回的所有项目的列表,如下所示: -
我是> ((3L,'血压'),(1L,'胆固醇'),(2L,'糖尿病'),(6L,'运动和# 39;),(5L,'甲状腺'),(4L,'体重/ BMI'))<
并为参与的员工项目提供服务: -
prjs> ((2L,),(3L,),(6L,))<
设置索引失败,因为返回了元组而不是值。我显然可以“捣碎”#39; prjs以正确的格式获得它但是在MySQL返回或设置索引时是否有更优雅的解决方案?
答案 0 :(得分:0)
几个小时后,我设法让它排序。我第一次尝试将prjs从((2L,),(3L,),(6L,))转换为(2L,3L,6L)失败,因为当我尝试匹配整数时它最终成为一个字符串。
在对列表进行更多研究之后(Python列表和词典不是我的优点)我提出了: -
prjs = [e for e, in row]
其中e是元组的第一个元素,行是以下结果: -
sql = "SELECT ProjectMembership.idProjectGroup FROM ProjectMembership \
WHERE ProjectMembership.idPersonnel = " + str(PersonnelNo)
cursor.execute(sql)
row = cursor.fetchall()