2

我有一个pytable。我经常需要将行复制到内存中的对象,然后插入另一个 pytable。我想知道最简单的方法是什么。以下代码不起作用,因为无法将 Row 对象转换为 dict。

for row in hf.root.my_table.iterrows():
   rec = dict(row)

另外,我想有条件地将数据复制到另一个文件,可能会添加 1-2 个新列。为此,我需要从一个表中提取表描述,对其进行修改,然后使用修改后的表描述创建一个新的桌子。我怎样才能做到这一点?

这也行不通。总的来说,我觉得我使用 pytables 的方式有点尴尬,我想知道更好的做事方式。

4

1 回答 1

0

文档中所述,您可以使用获取的Row.fetch_all_fields方法来获取一个独立的副本,该副本在表格文件关闭后保留其信息,例如。

您的示例代码看起来像

for row in hf.root.my_table.iterrows():
    rec = row.fetch_all_fields()

rec是一个 numpy void 标量,具有与行相同的键;rec['field']产生与 相同的数据row['field']

于 2019-01-25T22:23:39.210 回答