Es por que le tienes que pasar cadenas unicode.
Por ejemplo:
Código Python:
Ver originaldef cargardatos(self,col,val):
self.vsc = conecbase()
self.list = self.vsc.buscar('medicamento', col, val)
self.table.ClearGrid()
for c, i in self.list:
self.table.SetColLabel()
l = zip(range(8), [5, 4, 3, 6, 7, 0, 1, 2])
for x, y in l:
self.table.SetCellValue(c, x, unicode(str(self.list[c][y]), 'utf-8'))
self.table.AutoSizeColumns()
Estoy asumiendo que el encoding es utf-8 si no es asi cámbialo a tu encoding apropiado.
Si, no funciona entonces vamos a necesitar un script que al menos reproduzca el problema.