Svati
Svati

Reputation: 47

String indices must be integers in one place of code in python

import pymongo
import sys

client=pymongo.MongoClient('localhost',27017)
db=client.rop 

try:         
     cntcur=db.albums.aggregate([{"$unwind":"$images"},"$group":"_id":"null","count":{'$sum':1}}}])
     cursor1=db.images.find()    

     for im in cursor1:         
         id1=int(im['_id'])
         cnt=0         
         cursor= db.albums.aggregate([{"$unwind":"$images"}])
         print id1         
         for image in cursor:
             print "moving to images collection"             
             ig=image['images']
             if (id1 == ig):
                break;
             else:
                cnt=cnt+1              
                if (cnt == cntr):
                   print "removing"  
                   db.images.remove({'_id':id1})  



except Exception as e:
     print "unexpected error", type(e),e

I get error in the line ig=image['images']. I tried changing it to ig=int(image['images']), but I get same error.

Upvotes: 2

Views: 76

Answers (1)

The6thSense
The6thSense

Reputation: 8335

import pymongo
import sys    
client = pymongo.MongoClient('localhost',27017)
db=client.rop    
try:        
    cursor1=db.images.find()
    for im in cursor:
        id1=int(im['_id'])
        print id1
        cnt=0
        cursor=db.albums.find()
        for image in cursor:
            ig=image['images']
            for data in ig:
                if (id1 == data):
                    cnt=1
                    break;
        if cnt==0:
            print "removing"
            db.images.remove({'_id':id1})
except Exception as e:
    print "unexpected error",type(e) , e

Upvotes: 1

Related Questions