我是 DynamoDB 和 Python 的新手,并且遇到一个问题,我必须查询 DynamoDB 并根据日期列(不是排序键)按降序对数据进行排序。 我没有找到任何使用 Boto3 API 对数据进行排序的方法。
经过 2 天的 stackoverflow 广泛研究,其他网站只回答我这是不可能的。所以只是尽我最后的努力。
日期列是字符串类型,数据格式为 YYYYMMDD_HHMMSS。 目前我正在使用下面的代码来检索 Json 格式的数据。
result = TABLE.query(
KeyConditionExpression="partitionKey = :pk",
ExpressionAttributeValues={
":pk: partitionKey
},
}
这是第一个对查询进行排序的好方法,但如果不可能使用 python 库对数据进行排序,该库会转换 result["items"] 并使用排序后的 json 进行响应。
结果[“items”]是:
[{
"col1: "colV",
"dateColumn: "20231104_122600",
.......
},
{removing for brevity}
]
非常感谢任何帮助
桌子上已经有排序键了吗?如果你这样做,你有 2 个选择:
sorted_list = sorted(result['Items'], key=lambda x: x['dateColumn'])