[C++-sig] boost::python::dict problem

Ralf W. Grosse-Kunstleve rwgk at yahoo.com
Wed Oct 1 17:34:19 CEST 2008

I have no explanation (other than that it looks like a bug/hole), but I'd expect
testdict[boost::python::make_tuple(1, 17)] to work as you expect.

----- Original Message ----
From: Martin Walser <martin.walser at gmx.de>
To: c++-sig at python.org
Sent: Wednesday, October 1, 2008 6:00:23 AM
Subject: [C++-sig] boost::python::dict problem

Hello! :)

Hmm... something odd's happening here when I'm trying to use a dict in my
boost python C++ Extension:

C++ Extension Code:

    dict testdict;


    string test = extract<string>(testdict[1,17]);        //access to
dict: works!
    mLog->log(test); //writes test string to log... output: "huhu":

But if I want to access the testdict class member in Python like here:

Python Code:

    print self.myCExtension.testdict

I get this output:

    {17: 'huhu'}

While it should be {(1,17): 'huhu'}

Doing this with a bigger dict results in a output were most entries are
When I output them in C++ all are there.
Accessing with self.myCExtension.testdict[1,17] in python doesn't work
either of course:
     KeyError: (1, 17)

ravening beast... this boost::python.


C++-sig mailing list
C++-sig at python.org

More information about the Cplusplus-sig mailing list