gpt4 book ai didi

boto - 无法使 dynamodb 扫描与 boto 一起使用

转载 作者:行者123 更新时间:2023-12-01 06:45:45 26 4
gpt4 key购买 nike

我正在使用 boto 访问 dynamodb 表。一切顺利,直到我尝试执行扫描操作。

我尝试了在互联网上反复搜索后发现的几种语法,但没有成功:

def scanAssets(self, asset):
results = self.table.scan({('asset', 'EQ', asset)})
-or-
results = self.table.scan(scan_filter={'asset':boto.dynamodb.condition.EQ(asset)})

我要扫描的属性称为“ Assets ”, Assets 是一个字符串。

奇怪的是 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 专家,但我不明白这是如何工作的。 IE。 scan_filter 需要什么样的结构才能通过这段代码?

再一次,也许我只是说错了。有什么建议吗?

最佳答案

好的,看来我遇到了导入问题。简单地使用:

import boto

并指定 boto.dynamodb.condition 并不能解决问题。我不得不补充:

import dynamodb.condition

获取要拾取的条件类型。我现在的工作代码是:

results = self.table.scan(scan_filter={'asset': dynamodb.condition.EQ(asset)})

并不是说我完全理解为什么,但它现在对我有用。 :-)

关于boto - 无法使 dynamodb 扫描与 boto 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com