To get range_key between (0,9999), can I do it this way?
conn = boto.connect_dynamodb()
table = conn.get_table("mytable")
...
result = table.query(
hash_key = "66",
range_key_condition = {"0":"GE", "9999":"LE"}
)
EDIT: This is a another error sample:
In [218]: qa = taa.query(hash_key = "1")
In [219]: qa.next()
Out[219]: {u'attra': u'this is attra', u'key': u'1', u'range': 1.1}
In [220]: qa = taa.query(hash_key = "1", range_key_condition = {0.1: "GE"})
In [221]: qa.next()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/home/user/python/enva/<ipython-input-221-dba0a498b6e1> in <module>()
----> 1 qa.next()
/home/user/python/enva/local/lib/python2.7/site-packages/boto-2.2.2_dev-py2.7.egg/boto/dynamodb/layer2.pyc
in query(self, table, hash_key, range_key_condition,
attributes_to_get, request_limit, max_results, consistent_read,
scan_index_forward, exclusive_start_key, item_class)
559 """
560 if range_key_condition:
--> 561 rkc = self.dynamize_range_key_condition(range_key_condition)
562 else:
563 rkc = None
/home/user/python/enva/local/lib/python2.7/site-packages/boto-2.2.2_dev-py2.7.egg/boto/dynamodb/layer2.pyc
in dynamize_range_key_condition(self, range_key_condition)
83 structure required by Layer1.
84 """
---> 85 return range_key_condition.to_dict()
86
87 def dynamize_scan_filter(self, scan_filter):
AttributeError: 'dict' object has no attribute 'to_dict'
If you are using the latest version of boto (and it looks like you are) the way conditions have been changed from previous versions in an attempt to make the query more readable. Try this:
from boto.dynamodb.condition import *
conn = boto.connect_dynamodb()
table = conn.get_table("mytable")
...
result = table.query(
hash_key = "66",
range_key_condition = BETWEEN(0, 9999))
It should work although you will have to update your boto code since I just discovered a bug in BETWEEN while investigating this question (see https://github.com/boto/boto/issues/620).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With