gpt4 book ai didi

python - AWS DynamoDB - Boto3 从 dynamoDB 表/结构中获取所有属性、字段名、列标题

转载 作者:行者123 更新时间:2023-12-05 00:41:09 26 4
gpt4 key购买 nike

最好的

此时我在 python 2.7 中使用 Boto3,我想要的是:我的特定 DynamoDB 表的列标题。

此时,我正在处理一个非常大的 dynamoDB 表,有 80 列和 + 1.00O.000 条记录。我的任务是操纵这些数据。为此,我正在使用 block 。这意味着我每次从我的数据表中检索 1000 行并操作它们并将新结果写入 csv。 (出于某些原因,这是必需的)。

但是因为我使用的是 block ,可能不是每个 block 都包含 80 列,这意味着它有时可以包含 79 或 78 列。当 block 中的特定列没有可用值时,就会发生这种情况。

这是不可取的,因为在一天结束时,所有这些 csv 应该再次相互连接,因此,每个 csv 应该包含相同数量的列。

因此,我的想法是:将空列添加到不包含所有必需列的 chunk-csv 中。

但是,因此,我必须知道,我的表(或结构)中的标题、属性、字段名称是什么+问题是,那些列标题是动态的,不可能有标题的静态列表可能是,突然添加了一个唯一列的新记录,(这意味着下一次,我的每个 csv 将收到 81 列)-因此这些标题知识应该来 self 的表/亚马逊 aws

亲切的问候

最佳答案

您可以通过使用 Table 对象的 attribute_definitions 属性来获取您正在寻找的一些信息,如下所示:

import boto3
ddb = boto3.resource('dynamodb')
table = ddb.Table('MyTable')
attrs = table.attribute_definitions

变量 attrs 现在将包含您在创建表时明确定义的所有属性的字典,这些属性通常只是在某些索引中用作键的属性。

但是,由于 DynamoDB 是无模式的,您可以将其他属性的任意组合存储在 DynamoDB 中的一个项目中。因此,正如上面的评论所述,了解所有项目中使用的所有属性的唯一方法是遍历所有项目并构建在每个项目中找到的一组属性。

关于python - AWS DynamoDB - Boto3 从 dynamoDB 表/结构中获取所有属性、字段名、列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40634350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com