在Python中使用xlwt写列标题

0 投票
1 回答
5448 浏览
提问于 2025-04-18 10:46

我正在尝试解析一些来自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')

注意:我还没有在没有输入文件的情况下完全测试过,但我觉得这样应该可以工作。

撰写回答