如何在python中操作列表

时间:2014-05-05 01:39:08

标签: python list google-visualization

我有一个看起来像这样的列表

[(u'will', 332), (u'Indian', 398), (u'#AAP', 409), (u'Rahul', 430), (u'Modi', 441)]

我想使用谷歌图表在条形图上绘制它。 Google需要采用以下格式的数据 -

[
['Year', 'Austria'],
['2003',  1336060],
['2004',  1538156],
['2005',  1576579],
['2006',  1600652],
['2007',  1968113],
['2008',  1901067]

如何将列表转换为此格式?我知道我可以说list.add在第一个位置添加标题。但是,如何更改列表的剩余部分?如果你很想知道我是如何得到这种格式的列表的,那就是代码 -

f = open('data/convertcsv.json')
        data = json.loads(f.read())
        f.close()
        wordDict = {}
        for row in data:
            # print row['sentiment']
            wordList = row['text'].split()
            for word in wordList:
                if len(word) < 4: continue
                if word in wordDict: wordDict[word] += 1
                else: wordDict[word] = 1
        sorted_list = sorted(wordDict.iteritems(), key=operator.itemgetter(1))
        final_list = sorted_list[-5:]

2 个答案:

答案 0 :(得分:1)

尝试只是json.dumps您的列表了吗?格式已经正确(元组很好地转换为JSON数组)。

您需要做的只是添加标题(insert,而不是add

答案 1 :(得分:0)

我不清楚你是否遇到Python数据结构问题,或者只是导出到JSON。无论如何,如果您想让现有数据看起来与示例完全相同,那么您只需要:

original_data = [(u'will', 332), (u'Indian', 398), (u'#AAP', 409), (u'Rahul', 430), (u'Modi', 441)]

reworked_data = [['x_label', 'y_label']]

for item in original_data:
    reworked_data.append(list(item))

reworked_data
Out[4]: 
[['x_label', 'y_label'],
 [u'will', 332],
 [u'Indian', 398],
 [u'#AAP', 409],
 [u'Rahul', 430],
 [u'Modi', 441]]

要导出到JSON,您可以执行以下操作:

json.dumps(reworked_data)
Out[6]: '[["x_label", "y_label"], ["will", 332], ["Indian", 398], ["#AAP", 409], ["Rahul", 430], ["Modi", 441]]'

但正如Matti所说,没有必要将元组转换为列表来执行此操作,您只需将标题/标签插入原始列表即可。