0

Folks, Am trying to get the following bit of code working to return the row count in a table:

import boto
import boto.dynamodb2
from boto.dynamodb2.table import Table
from boto.dynamodb2.fields import HashKey, RangeKey

drivers = Table('current_fhv_drivers')
rowcountquery = drivers.query(
   number = 'blah',
   expiration = 'foo',
   count=True,
  )
for x in rowcountquery:
 print x['Count']

Error I see is:

boto.dynamodb2.exceptions.UnknownFilterTypeError: Operator 'count' from 'count' is not recognized.

Whats the correct syntaxt to get row count :)

Thanks!

2 Answers 2

2

That exception is basically telling you that the operator 'count' is not recognized by boto.

If you read the second paragraph on http://boto.readthedocs.org/en/latest/dynamodb2_tut.html#querying you'll see that:

Filter parameters are passed as kwargs & use a __ to separate the fieldname from the operator being used to filter the value.

So I would change your code to:

import boto
import boto.dynamodb2
from boto.dynamodb2.table import Table
from boto.dynamodb2.fields import HashKey, RangeKey

drivers = Table('current_fhv_drivers')
rowcountquery = drivers.query(
   number__eq = 'blah',
   expiration__eq = 'foo',
   count__eq = True,
  )
for x in rowcountquery:
 print x['Count']
Sign up to request clarification or add additional context in comments.

Comments

2
from boto.dynamodb2.table import Table
table = Table('current_fhv_drivers')
print(table.query_count(number__eq = 'blah', expiration__eq = 'foo'))

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.