【问题标题】:dynamodb row count via python, boto query通过python的dynamodb行数,boto查询
【发布时间】:2013-09-28 20:47:49
【问题描述】:

各位, 我正在尝试让以下代码返回表中的行数:

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']

我看到的错误是:

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

获取行数的正确语法是什么:)

谢谢!

【问题讨论】:

    标签: python amazon-web-services boto amazon-dynamodb


    【解决方案1】:

    该异常基本上是在告诉您,boto 无法识别运算符“count”。

    如果您阅读http://boto.readthedocs.org/en/latest/dynamodb2_tut.html#querying 上的第二段,您会看到:

    过滤器参数作为 kwargs 传递并使用 __ 将字段名与用于过滤值的运算符分开。

    所以我会将您的代码更改为:

    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']
    

    【讨论】:

      【解决方案2】:
      from boto.dynamodb2.table import Table
      table = Table('current_fhv_drivers')
      print(table.query_count(number__eq = 'blah', expiration__eq = 'foo'))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多