2

我试图弄乱这个 D3 可视化:(它的代码在这里

在此处输入图像描述

但是,我在尝试以正确格式获取数据时遇到了麻烦。

数据(供参考)必须采用以下格式:

[
{"name":"something 1","size":number 1,"imports":["thing 1","thing 2","thing 3","thing 4","thing 5","thing 6"]},
{"name":"something 2","size":number 2,"imports":["thing 1","thing 2","thing 3","thing 4","thing 5"]}
]

现在,我的数据(截至目前)采用以下格式(使用 nltk 收集):

[('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]

使用 defaultdict,我能够使用这些行转换数据:

pos = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
d = defaultdict( list )
for a, b in pos:
    d[b].append(a)
d = [ {b, d[b]} for b in d ] 

至:

[
{'MD': ['would']}, 
{'NN': ['man']}, 
{'IN': ['like']}, 
{'VBD': ['would']}
]

我不太确定如何进行或如何以正确的格式获取它。任何帮助将不胜感激。谢谢!

编辑:我应该更清楚;我的预期输出是这样的:

[
{'name': 'man', 'POS':['MD']}
]
4

2 回答 2

1

编辑

oldList = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newList = [{'name':a, 'POS':[b]} for a,b in list]

newList == [{'name': 'would', 'POS': ['MD']}, {'name': 'said', 'POS': ['VBD']}, {'name': 'like', 'POS': ['IN']}, {'name': 'man', 'POS': ['NN']}]

要转换为字典列表:

list = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newlist = []
for a,b in list:
    newlist.append({a:b})

newlist == [{'would': 'MD'}, {'said': 'VBD'}, {'like': 'IN'}, {'man': 'NN'}]

或者将每个元组添加到一个字典中:

list = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newlist = {a:b for a, b in list}

newlist == {'said': 'VBD', 'like': 'IN', 'would': 'MD', 'man': 'NN'}
于 2014-02-28T21:04:33.243 回答
1

像这样的东西?

[{k, v} for k, v in list]
于 2014-02-28T21:05:04.950 回答