从 DynamoDb 查询的 Python 脚本未提供所有项目

2024-04-17

我编写了以下 python 代码来从表中获取数据,但它没有按照我想要的方式获取所有项目。当我检查 DynamoDb 的 AWS 控制台页面时,我可以看到比从脚本中获得的条目多得多的条目。

from __future__ import print_function # Python 2/3 compatibility
import boto3
import json
import decimal
from datetime import datetime
from boto3.dynamodb.conditions import Key, Attr
import sys

# Helper class to convert a DynamoDB item to JSON.
class DecimalEncoder(json.JSONEncoder):
    def default(self, o):
        if isinstance(o, decimal.Decimal):
            if o % 1 > 0:
                return float(o)
            else:
                return int(o)
        return super(DecimalEncoder, self).default(o)

dynamodb = boto3.resource('dynamodb', aws_access_key_id = '',
        aws_secret_access_key = '',
        region_name='eu-west-1', endpoint_url="http://dynamodb.eu-west-1.amazonaws.com")

mplaceId = int(sys.argv[1])
table = dynamodb.Table('XYZ')

response = table.query(
    KeyConditionExpression=Key('mplaceId').eq(mplaceId)
)

print('Number of entries found ', len(response['Items']))

我也从 aws 控制台做了同样的事情。通过mplaceId查询。

它发生的任何原因?


dynamodb.Table.query()最多返回 1MB 的数据。来自boto3文档 https://boto3.readthedocs.io/en/latest/reference/services/dynamodb.html#DynamoDB.Table.query:

单个Query操作将读取最大数量的项目集(如果使用Limit参数)或最多 1 MB 的数据,然后使用以下方法对结果应用任何过滤FilterExpression. If LastEvaluatedKey出现在响应中,您将需要对结果集进行分页。有关更多信息,请参阅对结果进行分页 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination在 Amazon DynamoDB 开发人员指南 中。

这其实是没有的boto3- 限制,但底层的限制query-API.

您可以使用boto3's 内置分页 https://boto3.readthedocs.io/en/latest/guide/paginators.html。这是一个显示使用的示例用于查询 DynamoDB 表的分页器 https://boto3.readthedocs.io/en/latest/reference/services/dynamodb.html#DynamoDB.Paginator.Query由...提供boto3:

import boto3
from boto3.dynamodb.conditions import Key

dynamodb_client = boto3.client('dynamodb')
paginator = dynamodb_client.get_paginator('query')
page_iterator = paginator.paginate(
    TableName='XYZ',
    KeyConditionExpression='mplaceId = :mplaceId',
    ExpressionAttributeValues={':mplaceId': {'S' : mplaceid}}
)

for page in page_iterator:
    print(page['Items'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 DynamoDb 查询的 Python 脚本未提供所有项目 的相关文章

  • 使用 Lambda 函数运行 AWS Athena 的查询

    我在 AWS Athena 上创建了一个表 可以在其中运行任何查询而不会出现任何错误 select from mytestdb test 该表有三列 customer Id product Id price 我尝试创建一个 lambda 函
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • 如何使用对象标记上传到 AWS S3

    有没有办法使用标签将文件上传到AWS S3 不将标签添加到S3中的现有文件 对象 我需要让该文件与我的 Tags 一起出现在 S3 中 即在单个 API 调用中 我需要这个 因为我使用 Lambda 函数 使用这些 S3 对象标签 由 S3
  • 如何在 PuTTY 中保存并运行 Java 文件?

    我是 AWS 亚马逊网络服务 的新手 所以这可能是一个基本问题 我在 AWS 上创建了一个 EC2 实例 我有一台 Windows 计算机 因此我使用 PUTTY 来连接 Linux 实例 连接到我的 EC2 实例后 我使用以下命令编写 J
  • AWS SQS Batch SendMessageBatchRequest 非常慢

    我的应用程序使用 SendMessageBatchRequest 将每个请求发布 10 条消息到 AWS SQS 每条消息的大小小于250字节 该应用程序预计每天发布约一百万条记录 但要实现这一目标 消息发布的速度非常慢 AmazonSQS
  • 将 Django 部署到 AWS;傻瓜静态文件

    我对这个项目的最后一步完全迷失了 到目前为止 我已经能够开发一个 Django 应用程序 它可以在本地主机上按照我想要的方式工作 我已经能够将网站部署到 AWS EC2 但我一定错过了有关提供静态文件的一些基本知识 我什至还没有尝试过媒体文
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • 在全局二级索引上使用“withExclusiveStartKey”进行分页

    我有一个名为 product 的 DynamoDB 表 其全局二级索引位于 userId 上 主键位于 id 上 我正在尝试使用 userID GSI 上的 withExclusiveStartKey 来实现分页查询 但是 当我传递有效的
  • 在 Serverless Framework 1.0 中使用路径参数

    我想使用路径参数 customer customerId of a GET请求以使用 AWS Lambda 查询客户 functions createCustomer handler handler createCustomer event
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 在 Azure 上运行 .NET 应用程序

    我拥有在 Amazon EC2 上运行应用程序的丰富经验 它需要一台低端服务器 我目前为该服务器支付大约 90 美元 月 是的 我知道我并不真正需要可扩展性 但我仍然使用 EC2 我想知道将这个纯粹的 NET 应用程序迁移到 Microso
  • 无法使用 aws 无服务器离线从另一个 lambda 调用 lambda

    我想从 serverless offline 内的另一个 lambda 调用 lambda 我想创建一个无服务器离线 Web 应用程序 但我收到此错误 UnknownError 不支持的媒体类型 在 Object extractError
  • AWS S3 上传的图像已损坏

    我正在 AWS ec2 ubuntu 机器上工作 我的代码在 cakephp 中 当我尝试将任何图像上传到 AWS S3 时 它都会损坏 虽然它在核心 php 代码中运行良好 这是我的控制器代码 if this gt User gt sav
  • AWS cognito 用户迁移池触发器不适用于登录流程

    我正在使用带有认知执行角色的 Lambda 函数进行 AWS 认知池迁移 以下是我的新池应用程序客户端设置 or AWS doc says 用户迁移身份验证流程 用户迁移 Lambda 触发器 允许从旧用户管理系统轻松迁移用户 进入您的用户
  • 如何从此 AWS SecretsManager JSON 对象中提取字段?

    我正在使用 AWS Secrets Manager 来保护 REST API 的数据库信用 我正在使用 AWS Lambda API 网关和 RDS MySQL 以下是我如何获得它们 Load the AWS SDK var AWS req
  • 如何使用 aws-cdk 在 EC2 和 RDS 之间创建 DependsOn 关系

    我目前正在使用aws cdk TypeScript 创建一个堆栈 其中包含EC2实例和一个RDS数据库实例 The RDS实例需要在之前设置EC2实例可以启动并且userdata将被执行 我遇到的问题是 我找不到一种方法来定义DepensO
  • 无法对 Elastic Beanstalk AWS 上运行 ASP.NET 的网站强制使用 HTTPS(使用经典负载均衡器)

    这样我终于能够成功创建一个https网站了 它只是运行模板 ASP NET Web 项目 我有一个证书 并且该证书已添加到 AWS 中的 ELB 弹性负载均衡器 经典 中 我的环境可以浏览到https www mvc cloudy skie
  • IOPS 与吞吐量。选择 AWS EBS 时使用哪一种

    在选择合适的 EBS 卷类型时 我需要决定IOPS 或吞吐量是否是更好的性能衡量标准 https docs aws amazon com en us AWSEC2 latest UserGuide EBSVolumeTypes html问题
  • AWS Route 53 - 公共子域无法公开访问?

    我已购买域名company com并创建公共子域sales company com 路由53中的公共托管区域 我将子域映射 创建 A 记录 到内部应用程序负载均衡器 ALB 即该 ALB 只能在我的公司网络内访问 我的理解是公共子域可以映射

随机推荐

  • 如何使用Python在多进程中运行pycuda

    我有一个可以在单个进程中运行的 pycuda 代码 python的多进程可以支持在多个子进程中运行这段代码吗 如果我尝试 我会发现我犯了一个错误 我做错了吗 我尝试用python的进程实现一个简单的多进程 发现会出错 import pycu
  • Java 反射调用原始类型的构造函数

    我的测试框架中有一个方法 可以根据传入的参数创建类的实例 public void test Object constructorArgs throws Exception Constructor
  • 如何在 Automapper 中使用数据集?

    我目前使用数据读取器作为源 但我想改用数据集 datareader AutoMapper Mapper CreateMap
  • 确定事务中无法执行的T-SQL/DDL

    有多种语句和系统过程无法在事务中执行 并出现错误消息 不允许 例如 create database 或 无法执行 例如 exec sp addrole 是否存在一条或一组规则来指示事务中是否不允许给定的过程 语句 有其列表吗 不是 Micr
  • 使用 AWS CodeBuild 构建 Windows 容器

    我正在开始使用 AWS 的 CI CD 功能 到目前为止 我已经基于 microsoft windowsservercore 映像在 Windows Server 2016 本地创建了 docker 映像 并将其手动推送到 ECR 亚马逊容
  • 内联块 div 中的文本将其向下推[重复]

    这个问题在这里已经有答案了 今天早上我发现了一个奇怪的 CSS 问题 我希望 CSS 专家能帮助我 在这个演示 http jsfiddle net 7HBCe 为什么红色 div 中的文本将其向下推 我预计这两个 div 会彼此相邻 谢谢
  • 删除Elasticsearch中类型的文档

    我想使用 HTTP REST api 删除 Elasticsearch 中某一类型中索引的所有文档 但我不想删除该类型的映射 如何在 URL 中构建查询来执行此操作 执行命令前 索引 映射状态 截图取自elasticsearch头插件网络界
  • 你能帮助解释我的 svn diff 输出吗?

    我正在使用 SVN DIFF 比较两个文件夹 一个在分支中 一个在主干中 目的是确定更改列表 然后我对分支中的文件进行了一些更改 但输出显示我已经在主干中修改了它们 为什么会出现这种情况 有没有更好的命令来获取我正在寻找的结果 我现在使用的
  • 具有 EasyIn 动画,然后按顺序缩放动画,因为缩放动画会永远重复

    我想要在 onAppear 上为文本信息和 SF 符号添加一个 escapeIn moveUp 动画 此后 我只希望 SF 符号永远按比例放大和缩小 目前 我已经设法永远缩小规模 但是当我设法链接时 easeIn moveUp 动画也会永远
  • Julia 似乎没有使用字符串来执行插值

    官方文档指出 连接和字符串插值调用string 将对象转换为字符串形式 然而 以下最小工作示例似乎证明了其他情况 type MyType x Int end import Base string Base string m MyType w
  • ... 不支持谷歌地图 Javascript API。使用其他浏览器

    我正在使用两个不同的第三方程序 不同的公司 它们显然使用 Google Maps Javascript API 当他们加载地图时 会显示世界地图 但会显示一条错误消息 Der von Ihnen verwendete Browser wir
  • 如何用动画消除一堆模态视图控制器而不在屏幕上闪烁顶部和底部之间任何呈现的 VC?

    更新 通过下面的 屏幕截图 方法修复 这可行 但是有更优雅的方法吗 我将如何消除一堆带有动画的模态视图控制器 而不在屏幕上闪烁顶部和底部之间任何呈现的 VC 尝试用动画来做到这一点是行不通的 请参阅下面的代码和描述我的问题的内嵌注释 您可以
  • 当客户端不正常退出时,如何检测服务器上 Python aiohttp Web 套接字的关闭

    我有一个简单的命令和控制服务器server py 完全不安全 不要使用 被动客户端update client py和另一个可以发送命令的客户端update commander py 有一个 http 端点http 0 0 0 0 8080
  • NAT 穿越和 IPv6

    我很好奇一旦 IPv6 的部署和使用增加 NAT 和 NAT 穿越机制的用处 我们有很多 NAT 遍历机制 包括专有的 主要用于某种住宅或企业 NAT 背后的 IPv4 设备 客户端 鉴于 NAT 的出现是因为 IPv4 缺乏可用地址 那么
  • 未找到 CSS 和 JS 的 Vue dist 路径

    我在构建后渲染 VueJS 应用程序时遇到问题 当我查看构建文件夹并检查路径时 我的资产 css 和 javascript 的路径开头有一个正斜杠 这使得我的 css 资源和 javascript 无法找到 我想知道在运行构建脚本之前如何避
  • 尝试将 CABasicAnimation 位置和图层不透明度延迟 3 秒,但是

    我试图使用 setBeginTime 将图层的不透明度和位置的动画延迟 3 秒 我将图层命名为boxLayer 动画进展顺利 但在前 3 秒内 该图层不应显示 该图层以其最终位置和不透明度显示 不应该 组动画并不能解决该问题 有人可以帮忙吗
  • C++2a 合约编程和编译器

    我有兴趣研究最近接受的C 20 的合约编程 https en cppreference com w cpp language attributes contract用于学习和调查目的 当我四处寻找编译器支持时 我很失望没有找到任何支持 两个
  • Laravel dusk 不工作 .env.dusk.local

    我有一个应用程序 我想使用 Laravel Dusk 我创建了一个名为 env dusk local带有用于测试的数据库和名为的文件 env使用我的默认数据库 我运行 php artisan 命令并创建了一个用户 register 在我使用
  • golang 中有惯用的范围语义吗?

    我想知道是否有任何惯用的方式来表示scoped语义 我所说的范围是指 范围互斥体 一个衬垫而不是显式锁定 延迟解锁 记录函数 或任何代码块 的入口和出口 测量执行时间 前两个项目符号的示例代码 package main import log
  • 从 DynamoDb 查询的 Python 脚本未提供所有项目

    我编写了以下 python 代码来从表中获取数据 但它没有按照我想要的方式获取所有项目 当我检查 DynamoDb 的 AWS 控制台页面时 我可以看到比从脚本中获得的条目多得多的条目 from future import print fu