[C++-sig] Embending : Expose and Extract a dictionary object To/From C++

Mark Chandler admin at lodle.net
Thu Sep 3 09:44:47 CEST 2009


Can you print iptc by it self?



On 03/09/2009, at 3:41 PM, Constant Dupuis wrote:

> Ok, thanks,
>
> Now I got a "Segmentation fault" error message when I try "print
> iptc['Headline']".
>
> Is the dict object directly exposable ? Or do I have to create a
> std::map base class ?
>
> Constant
>
> 2009/9/3 Mark Chandler <admin at lodle.net>:
>> when you do the exec add the main_namespace twice
>>
>>> object ignored = exec("print('Headline')\n print(iptc['Headline']) 
>>> \n",
>>> main_namespace,main_namespace);
>>
>>
>> On 03/09/2009, at 3:12 PM, Constant Dupuis wrote:
>>
>>> Hi,
>>>
>>> I would like to expose a dictionary object instanciated in C++ to a
>>> Python code, which manipulate the dictoinary.
>>> And after extract the resulting modified dictionary back in C++.
>>>
>>> I try this :
>>>
>>> try {
>>>
>>>   Py_Initialize();
>>>
>>>        std::cout << "Hello, World!\n";
>>>
>>>        dict d;
>>>        d["Headline"] = "Titre";
>>>
>>>        object main_module = import("__main__");
>>>        object main_namespace = main_module.attr("__dict__");
>>>
>>>        main_namespace["iptc"] = ptr(&d);
>>>
>>>        object ignored = exec("print('Headline')\n"
>>>
>>>  "print(iptc['Headline'])\n",
>>>                                                main_namespace);
>>>
>>>
>>> } catch( error_already_set ) {
>>>   PyErr_Print();
>>> }
>>>
>>> And here is hte output :
>>>
>>> Hello, World!
>>> Headline
>>> Traceback (most recent call last):
>>>  File "<string>", line 2, in <module>
>>> TypeError: 'NoneType' object is unsubscriptable
>>>
>>> What did I missed ?
>>>
>>> Thanks en regards,
>>>
>>> Constant
>>> _______________________________________________
>>> Cplusplus-sig mailing list
>>> Cplusplus-sig at python.org
>>> http://mail.python.org/mailman/listinfo/cplusplus-sig
>>
>> _______________________________________________
>> Cplusplus-sig mailing list
>> Cplusplus-sig at python.org
>> http://mail.python.org/mailman/listinfo/cplusplus-sig
>>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig at python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig



More information about the Cplusplus-sig mailing list