问题标签 [pynamodb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 pynamodb 库创建 dynamodb 记录时,“NoneType”对象不可迭代
我正在尝试创建记录并将其保存到 DynamoDB
在哪里apps
和services
看起来像这样
我在日志中检查它们,它们不是空的,也不是None
包含我期望的数据。但是,当我尝试执行save
它失败并出现错误
我的model
定义看起来像这样
怎么了?我想这可能与我的属性定义有关...
pynamodb - JSON 表示 PynamoDB 实例
我无法从 PynamoDB 实例获取 JSON 表示。这是模型。
我需要的是 my_test 的 JSON 表示。
我尝试过的事情是。
my_test.to_dict() - 这给出了一个非属性错误
json.dumps(my_test.to_dict(), 缩进=2)
任何帮助,将不胜感激。
amazon-web-services - 在 python 的 dynamodb 中使用全局二级索引时出错
我在 AWS dynamodb 中创建了一个全局二级索引,其中在我将手机用作 GSI 的用户表中。我收到一条消息错误:
'Table UsersTable 没有索引:PHONE_INDEX'。
下面是作为 GSI 的用户表和电话的代码片段。我无法弄清楚我收到此错误的原因。
python - 使用 pynamodb 从 dynamodb 检索数据
我开始使用 pynamodb(和 dynamodb),但不知道如何使用它。
我有:
- 一个 dynamodb 表
- 一个拉姆达
在 lambda 中运行此代码,我可以成功创建两个条目(我在 dynamodb 管理控制台中看到它们):
然后我尝试检索这些条目之一,运行以下代码:
这是我得到的输出:
问题:
- 当我可以从管理控制台清楚地看到两个条目时,为什么
User.count()
返回零? - 为什么不能从数据库中检索用户?
pynamodb - 如何在 pynamodb 中创建只读模型属性?
我正在开发一个模型,该模型通过简单的 hack 实现只读属性:
有了这个技巧,用户在创建实例时需要提供updated_at
,即使该值将被忽略。
这个直接的问题可以通过 来解决updated_at = UTCDateTimeAttribute(null=True)
,但现在模型发出的信号updated_at
可能不是响应的一部分,但事实并非如此。
基本上,我如何向用户表明他们不能为字段提供值(理想情况下尝试设置updated_at
应该会导致错误),但是该模型的每个实例都会有该字段的值?
python - 如何创建延迟加载的 JSON 可序列化字段?
我从一个代表 DynamoDB 数据库表的类开始:
我有几个涉及这个类的测试。他们中的一些人以永远不会真正与云对话的方式使用FooModel
实例(我已经通过使用pytest-socket的--disable-socket
标志来确保这一点)。
问题是因为 Reasons™ 我已经更改了要由云提供商生成的表名。这意味着任何实际需要的生产代码都table_name
必须与云提供商联系。现在,如果我只是简单地进行table_name = get_table_name(…)
离线测试将失败,因为该代码是在导入时执行的。但是,我仍然希望单元测试脱机运行,因此我将该字段更改为一个属性,该属性调用一个方法来在运行时查找实际值:
这使得离线测试通过而无需引入任何复杂的模拟框架或在测试和生产期间运行不同的代码路径。问题是验收测试(针对已部署的云基础设施运行)失败,因为 boto3 正在尝试将属性序列化为 JSON 并且失败:
如何在不引入更多框架并确保生产代码路径与测试代码路径相同的情况下解决此问题?
python-3.x - PynamoDb - 增量操作
有没有办法使用以下代码片段pynamodb
?
根据此处的测试和此处的文档,我可以看到它是受支持的,但是当我尝试对add
如下所示的数字字段进行操作时,它会引发AttributeError: 'int' object has no attribute 'add'
异常。
test_table.balance.add(int(dep_amount))
python - 如何使用 PynamoDB 实例化具有本地二级索引的类模型?
我需要用 PynamoDB 库实例化一个使用本地二级索引的类模型,但我遇到了错误。我的代码:
这是我第一次在 PynamoDB 中使用索引(本地或全局)。文档实际上并没有给出使用索引实例化模型类的示例(我已经看到),只是模型/索引定义以及查询示例(我指的是readthedocs here和github examples here) .
我第一次尝试测试这个看起来像这样:
...但我在MyIndex
构造函数中收到以下错误:
删除第一个参数my_org_id
给了我上面的错误...but 2 were given
。我也尝试过user_index = 'abc123'
,user_id = 'abc123'
但在这两种情况下我都得到了ValueError: Attribute user_* specified does not exist
.
有人可以告诉我这应该如何工作或向我指出一个工作示例的方向吗?