在Python中使用xlwt写列标题
我正在尝试解析一些来自Twitter流媒体API的数据,并把特定的字段写入Excel工作簿中的一列。使用xlwt
,我已经能够把数据写入Excel文档的列中,但我还没找到一个好的方法来添加列标题。
我知道每一列在第一行应该是什么标签,所以不需要从原始数据中解析列名。第一列的标题应该是“user_screen.name”,第二列的标题应该是“user_lang”。
import sys
import json
import xlwt
data = []
for line in open(sys.argv[1]):
try:
data.append(json.loads(line))
except:
pass
authors = [i['user']['screen_name'] for i in data]
lang = [i['lang'] for i in data]
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet 1')
column_number = 0
for row_number, item in enumerate(authors):
worksheet.write(row_number, column_number, item)
column_number = 1
for row_number, item in enumerate(lang):
worksheet.write(row_number, column_number, item)
workbook.save('tweets.xls')
1 个回答
1
如果你只是想要一些固定的、写死的标题,其实可以很简单地通过对你的程序做一些小调整来实现(见下面的代码):
import sys
import json
import xlwt
data = []
for line in open(sys.argv[1]):
try:
data.append(json.loads(line))
except:
pass
authors = [i['user']['screen_name'] for i in data]
lang = [i['lang'] for i in data]
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet 1')
column_number = 0
worksheet.write(0, column_number, 'Authors')
for row_number, item in enumerate(authors):
worksheet.write(row_number+1, column_number, item)
column_number = 1
worksheet.write(0, column_number, 'Language')
for row_number, item in enumerate(lang):
worksheet.write(row_number+1, column_number, item)
workbook.save('tweets.xls')
注意:我还没有在没有输入文件的情况下完全测试过,但我觉得这样应该可以工作。