繁体   English   中英

如何使用 Lambda 中的 python 从 dynamoDB 获取/获取某些列?

[英]How to get/fetch certain columns from dynamoDB using python in Lambda?

  1. 我在 dynamodb 中有一个名为“DNA”的表,其中有 20 到 25 列。 但我只需要从 dynamodb 中提取 3 列。

  2. 必填列是 status、ticket_id 和 country

table_name = 'DATA'
# dynamodb client 
dynamodb_client = boto3.client('dynamodb')

必填列是 status、ticket_id 和 country

response = table.scan(AttributesToGet=['ticket_id','ticket_status','org_country'])

我尝试使用它,但我不应该提供密钥和价值。
它应该获取该特定列的所有值。 有什么方法可以只从 dynamo.xml 获取所需的列。

如前所述,您需要使用 ProjectExpression:

dynamodb = boto3.resource('dynamodb', region_name=region)
table = dynamodb.Table(table_name)
item = table.get_item(Key={'Title': 'Scarface', 'Year': 1983}, ProjectionExpression='status, ticket_id, country')

需要注意的一些事项:

  • 最好使用资源而不是客户端。 这将避免特殊的 dynamodb json 语法。
  • 您需要将完整(复合)密钥设置为 get_item
  • 选定的列应使用逗号分隔的字符串
  • 始终使用表达式属性名称是个好主意:
    item = table.get_item(Key={'Title': 'Scarface', 'Year': 1983}, 
                          ProjectionExpression='#status, ticket_id, country',
                          ExpressionAttributeNames={'#status': 'status'})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM