我有一个看起来像这样的列表
[(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:]
答案 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所说,没有必要将元组转换为列表来执行此操作,您只需将标题/标签插入原始列表即可。