问题
  
  
   我试图转换一个列表列表,由一个称为C++代码内部的Python函数返回。尽管
   
    平键11
   
   库允许从Python数据类型到C++数据类型的转换,我尝试将Python返回的列表列表转换为
   
    std::list
   
   属于
   
    STD::列表
   
   C++的字符串,每次都失败。
  
  
   代码
  
  
   下面是python函数(函数返回包含字符串值的列表):
  
  def return_sheet(self):
     """Returns the sheet in a list of lists
     """
     dataTable = []
     for r in range(self._isheet.nrows):
         datalist = []
         for c in range(self._isheet.ncols):
             datalist.append(self._isheet.cell_value(r,c))
         dataTable.append(datalist)
 return dataTable
  
   这里我用C++调用它
   
    平键11
   
   :
  
  py::list obj = _tool.attr("return_sheet")();
data = py::cast<SheetData>(obj); // This is where the problem lies, This cast crashes the program
  
   在哪里?
   
    SheetData
   
   是一个
   
    typedef
   
   为:
  
  typedef std::list<std::list<std::string> > SheetData;
  
   在调试过程中,我发现程序实际上在这一行崩溃:
  
  py::object dataTable = _tool.attr("return_sheet")(); // Where _tool.attr("return_sheet")() gives an py::object which is a list of list of str
  
   有人知道,我怎样才能成功地将python列表转换为
   
    STD::列表
   
   属于
   
    STD::列表
   
   C++的?
  
  
   编辑
  
  
   下面是我在C++中嵌入的Python程序文件[XListal.py]:
   
    https://pastebin.com/gARnkMTv
   
  
  
   这里是C++代码[Maun.CPP]:
   
    https://pastebin.com/wDDUB1s4
   
  
  
   注意:XLySalt.Py中的所有其他函数不会在C++中嵌入崩溃(只有ReTurnSeTE()函数导致崩溃。