Python Type Error: ‘OldSample’ object has no attribute ‘__getitem__’

The data set looks something like this, The data is from openstack ceilometer python API

        counter_name': cpu_util', 
         user_id': 7b', 
         resource_id': ef', 
         timestamp': 2015-07-02T08:13:55', 
         counter_volume': 0.774, 
                             ramdisk_id': None',
                             flavor.vcpus': 1',
                              OS-EXT-AZ.availability_zone': nova', 
                              display_name': ubuntu-io', 
                    ': 596642d8-', 
                              status': active', ephemeral_gb': 0', 
                              disk_gb': 20', 
                              kernel_id': None', 
                    ': 5776a360-', 
                              flavor.ram': 2048', 
                              host': host', 
                              flavor.ephemeral': 0',
                     ': ubuntu-io', 
                               image_ref_url': http://b8dc', 
                                             'href': 'http://19', 
                                             'rel': 'bookmark'
                                             cpu_number': 1', 
                                             flavor.disk': 20', 
                                             root_gb': 20',
                                              name': instance-000000d3', 
                                              memory_mb': 2048', 
                                              instance_type': 596642d', 
                                              vcpus': 1', image_ref': 5776a36', 
                                              'href': '', 
                                              'rel': 'bookmark'
                                              source': openstack', 
                                              counter_unit': %', 
                                              recorded_at': 2015-07-02T08:13:55.485000', 
                                              project_id': 1670f', 
                                              message_id': 4849', 
                                              4counter_type': gauge'

My code looks something like this

auth=v2.Password(auth_url="http://", username="user", password="pass", tenant_id='id')

sess = session.Session(auth=auth,verify=False)     
token = auth.get_token(sess)

cclient = client.get_client(2, ceilometer_url="http:", token=token,verify=False)

data = cclient.samples.list(meter_name ='cpu_util')

thing = {}
msg = {}
cols = []

def __unicode__(self):
  return unicode(

for row in data:
    col = {}
    col['x'] = row['timestamp']
    col['y'] = row['counter_volume']

msg['columns'] = cols

thing['message'] = msg

print thing

print json.dumps(thing)

My intended out out something like this

message: {
      columns: [
        ["x": 123, "y": "456"],
        ["y": 0.045, "x": "2015-06-30T15:53:55"]

here x is counter_volume and Y is timestamp
I need the output in this way because I want to plug this data into EON pubnub Charting Library. Problem is that no matter what I do it keeps on throwing me errors.I guess I need to learn some more how to manipulate list of dictionaries.

Source: json

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.