0

皆さん、テーブルの行数を返すために次のコードを動作させようとしています:

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.

行数を取得するための正しい構文は何ですか:)

ありがとう!

4

2 に答える 2

2

その例外は基本的に、演算子「count」が boto によって認識されないことを示しています。

http://boto.readthedocs.org/en/latest/dynamodb2_tut.html#queryingの 2 番目の段落を読むと、次のことがわかります。

フィルター パラメーターは 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']
于 2013-10-20T14:47:14.977 に答える
2
from boto.dynamodb2.table import Table
table = Table('current_fhv_drivers')
print(table.query_count(number__eq = 'blah', expiration__eq = 'foo'))
于 2015-08-18T22:08:04.537 に答える