csv数据的数据结构

时间:2014-07-07 11:10:55

标签: python python-2.7

作为indata,我得到以下(CSV文件):

1;data;data;data
1.1;data;data;data
1.1.1;data;data;data
1.1.2;data;data;data
2;data;data;data
2.1;data;data;data
etc...

我尝试使用Tree数据结构:

def Tree():
    return collections.defaultdict(Tree)

但问题是我想将数据存储如下:

t = Tree()
t[1][1] = [data,data,...,data]
...
t[1][1][1] = [data,data,...,data]

这不符合上面定义的数据结构。

1 个答案:

答案 0 :(得分:0)

您不能将密钥和子项存储在单个dict条目中:

tree[1] = [myData]
tree[1][5] = [myOtherData]

在这种情况下,tree[1]必须同时为[myData]{5: [MyOtherData]}

要解决此问题,您可以将数据存储为dict中的单独元素:

tree = { 1: { 'data': [myData] 5: { 'data': [myOtherData] } } }

现在你可以使用:

tree[1]['data'] = [myData]
tree[1][5]['data'] = [myOtherData]

或者如果你想,你可以使用另一个魔法索引,如0(如果0永远不会发生),但'data'可能更清晰。