我正在使用 boto 访问 dynamodb 表。一切都很顺利,直到我尝试执行扫描操作。
在反复搜索 Internet 后,我尝试了几种语法,但没有运气:
def scanAssets(self, asset):
results = self.table.scan({('asset', 'EQ', asset)})
-or-
results = self.table.scan(scan_filter={'asset':boto.dynamodb.condition.EQ(asset)})
我正在扫描的属性称为“资产”,资产是一个字符串。
奇怪的是 table.scan 调用总是通过这个函数结束:
def dynamize_scan_filter(self, scan_filter):
"""
Convert a layer2 scan_filter parameter into the
structure required by Layer1.
"""
d = None
if scan_filter:
d = {}
for attr_name in scan_filter:
condition = scan_filter[attr_name]
d[attr_name] = condition.to_dict()
return d
我不是 python 专家,但我不知道这是如何工作的。即 scan_filter 需要什么样的结构才能通过这段代码?
再说一次,也许我只是说错了。有什么建议么?