PynamoDB嵌套对象表格演示

时间:2018-06-14 23:55:46

标签: python amazon-dynamodb

我正在使用 Pynamodb 来查询DynamoDB。

我想使用Tabulate提供一个数据表。

没有嵌套MapAttributes

时效果很好

当对象彼此嵌套时,对象需要解压缩。 我想知道其他人如何解决这个解包嵌套对象的问题?

我正在使用这种方法在Model上创建一个iterable:

def __iter__(self):
    for name, attr in self.get_attributes().items():
        try:
            if isinstance(attr, MapAttribute):
                yield name, getattr(self, name).as_dict()
            else:
                yield name, attr.serialize(getattr(self, name))
        except:
            pass

此方法从pynamodb查询传递结果集:

def get_headers_and_data(resultset):
    headers = []
    data_rows = []
    result_count = 0
    for result in resultset:
        data = []
        # tmp = list(result)
        for field in list(result):
            headers.append(field[0])
            data.append(field[1])
        data_rows.append(data)
        result_count += 1
    return headers, data_rows, result_count

当我没有嵌套对象时,我最终会得到一个元组列表,这些元组很容易分解为字段名和数据。

当我有嵌套对象时,我可以测试类型,如果它是一个字典,我可以处理。我认为有人之前已经这样做了,并且有更好的方法。

0 个答案:

没有答案