Sorry but it did not help... I tried this: PyObject* key = PyList_GetItem(moduleKeys,idx); char* theKeyName = PyUnicode_AsUTF8String( key );
And this, just in case: PyObject* key = PyList_GetItem(moduleKeys,idx); char* theKeyName = PyUnicode_AsUTF8String( PyObject_Str (key) ); (Although it should work in the first case since key is suposed to be a string already, the module name). In all the cases, I obtained an empty string when using theKeyName: PySys_WriteStdout("Module '%s'\n", theKeyName); The issue is that all PyUnicode* functions are returning PyObjects. PyString_AsString return value was char*. Is there any real equivalent of this function? Thanks again. Best regards, RC On 8 abr, 23:35, "Martin v. Löwis" <mar...@v.loewis.de> wrote: > > PyObject* key = PyList_GetItem(moduleKeys,idx); > > PyObject* module = PyDict_GetItem( interp->modules, key ); > > char* theKeyName = <????> > > PySys_WriteStdout("Module '%s'\n", theKeyName); > > } > > I was not able to obtain theKeyName, knowing that the "key" PyObject > > is in fact a unicode string containing the character string I want... > > Use PyUnicode_AsUTF8String. > > > Could anybody help me? How can I, in general, obtain char* strings > > from a corresponding PyObject? What should I use for "<????>"? > > In general, this is much more difficult. If the object is an integer > (say), or a file object - what is the char* that you want to get? > You would need to call PyObject_Str first, getting str() (or repr()) > of the object, and then use PyUnicode_AsUTF8String (releasing > the _Str result afterwards). > > Regards, > Martin -- http://mail.python.org/mailman/listinfo/python-list