Python 如何查询DynamoDB中一列的所有行?

Python 如何查询DynamoDB中一列的所有行?,python,amazon-dynamodb,boto3,Python,Amazon Dynamodb,Boto3,我只是在短时间内使用AWS DynamoDB。我想知道如何使用此语句(没有WHERE子句)获得相同的结果: 从DynamoTable中选择第1列 我尝试过(但失败了): 它需要Key().eq()或Key()。以()开始 我已经尝试了resp=table.scan(),但是响应数据的字段太多,而我只需要column1 谢谢。你一定要用。检查以使用python实现它 关于如何仅选择可以使用的特定属性: import boto3 def getColumn1Items(): dynamod

我只是在短时间内使用AWS DynamoDB。我想知道如何使用此语句(没有WHERE子句)获得相同的结果:

从DynamoTable中选择第1列

我尝试过(但失败了):

它需要
Key().eq()
Key()。以()开始

我已经尝试了
resp=table.scan()
,但是响应数据的字段太多,而我只需要
column1

谢谢。

你一定要用。检查以使用python实现它

关于如何仅选择可以使用的特定属性:

import boto3

def getColumn1Items():
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('DynamoTable')
    response = table.scan()

    lst = []
    for i in response['Items']:
        lst.append(i['column1'])

    return lst

您必须遍历整个表,只需获取所需的列。

这使您可以直接获取所需的列,而无需遍历整个数据集

import boto3

def getColumn1Items():
     dynamodb = boto3.resource('dynamodb')
     table = dynamodb.Table('DynamoTable')
     resp = table.scan(AttributesToGet=['column1'])

     return resp['Items']

谢谢这比我想象的要容易得多请注意,扫描操作将执行全表扫描并读取表中的所有内容。一旦数据量增加,这可能会对性能造成问题。您能解释一下为什么这比公认的答案更好吗?使用ProjectionExpression Old但仍然相关:)这更好,因为不会从数据库中提取额外的列。上面的扫描实现选择所有列并“本地”删除它们。
import boto3

def getColumn1Items():
     dynamodb = boto3.resource('dynamodb')
     table = dynamodb.Table('DynamoTable')
     resp = table.scan(AttributesToGet=['column1'])

     return resp['Items']