我的wxPython应用程序有一个带有CheckListBox的窗口,该窗口显示MySQL数据库中保存的所有项目。对于选定的员工,应选中他们所参与的项目。我正在尝试使用以下方法在方框中打勾
indices = [i for i in range(len(lst)) if lst[i][0] in prjs]
self.checkListBox1.SetChecked(indices)
其中lst是cursor.fetchall()返回的所有项目的列表,如下所示:-
lst为>((3L,'血压'),(1L,'胆固醇'),(2L,'糖尿病'),(6L,'运动'),(5L,'甲状腺'),(4L,'体重/ BMI'))<
prjs员工参与的项目:-
prjs是>(((2L,),(3L,),(6L,))<
设置索引失败,因为返回的是元组而不是值。我显然可以“混搭” prjs以正确的格式获取它,但是在MySQL返回值或设置索引中是否有更优雅的解决方案?
最佳答案
几个小时后,我设法将其排序。我第一次尝试将prjs从((2L,),(3L,),(6L,))转换为(2L,3L,6L)失败,因为当我尝试对整数进行匹配时,它最终以字符串形式出现。
在深入研究列表之后(Python列表和字典不是我的强项),我想到了:
prjs = [e for e, in row]
其中e是元组的第一个元素,而row是以下结果:
sql = "SELECT ProjectMembership.idProjectGroup FROM ProjectMembership \
WHERE ProjectMembership.idPersonnel = " + str(PersonnelNo)
cursor.execute(sql)
row = cursor.fetchall()
关于python - 从MySQL查询设置CheckListBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35867780/