python - PynamoDB query() 返回 0 值,而 scan() 确实
问题描述
我已经声明了一个非常基本的模型并测试了查询和其他功能。我可以运行scan()
并从 dynamoDB 中获取所有对象,但是当我运行时,query
我什么也得不到。我查看了示例、文档并在互联网上进行了搜索。无法弄清楚我做错了什么。
这是我的模型:
class Book(BaseModel):
id = UnicodeAttribute(hash_key=True, null=False, default_for_new=uuid.uuid4())
name = UnicodeAttribute(null=False)
author = UnicodeAttribute(null=True)
pages = NumberAttribute(null=True)
class Meta:
table_name = BOOKS_TABLE_NAME
这是我作为示例编写的代码:
# List all books - Passes
print('Fetching all books')
books = Book.scan()
for b in books:
print(b.id)
print(b.name)
# Fetch single book - Failed
print('Fetching single book')
book = list(Book.query(b.id))
print(book)
如果我boto3
用来获取该项目,我可以获取它。
book = dynamodb_client.get_item(
TableName=BOOKS_TABLE_NAME,
Key={
'id': {
'S': id
},
}
)
print(book)
我不知道为什么通过访问boto3
是有效的,但不是通过 pynamoDB。任何指导将不胜感激。
解决方案
推荐阅读
- python - 如何在第一个单词之前移动第二个单词?
- webpack - CSS 导出后的 Webpack 4/Font-Awesome 5 $fa-font-path wong
- javascript - 在js条件的“return”中设置图片或用“content”指定样式
- powershell - 如何获取和显示用户名?
- azure - Azure ML Web 服务参数输入
- visual-studio-code - 如何在 Visual Code Studio 中为 pug lang 选择选项卡大小?
- javascript - Notepad++ 中的换行符
- firebase - 该方法在 null 上调用
- java - Java Spring 表不存在
- npm - 仅当文件不同时如何 cp 文件?