Запись заголовков столбцов с помощью xlwtin Python

#python #excel #xlwt

#python #excel #xlwt

Вопрос:

Я пытаюсь проанализировать некоторые данные потокового API Twitter и записать определенные поля в столбец в книге Excel. Используя xlwt , я смог записать столбцы в документ Excel, но я не нашел хорошего способа включить заголовки столбцов.

Я знаю, что хочу, чтобы каждый столбец был метками в строке 1, поэтому нет необходимости анализировать имена столбцов из исходных данных. Заголовок столбца 1 должен быть «user_screen.name » и заголовок столбца 2 должен быть «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. Было бы полезно иметь доступ хотя бы к образцу json-файла, который вы анализируете.

2. Данные взяты из потокового API Twitter, и я не верю, что условия предоставления услуг позволяют мне делиться необработанными данными.

3. возможно, можно просто взять пару записей и запутать данные, относящиеся к контенту пользователя / местоположения / твита (если вы считаете это допустимым), поскольку я не уверен, как мы можем помочь, не имея доступа к вводу.

4. Я только что перечитал, я предположил, что вы хотите получить заголовки из файла json, но вы хотите сказать, что просто хотите использовать статические жестко закодированные заголовки?

5. Это правильно @ChrisProsser, я хочу использовать статические жестко закодированные заголовки. Заголовок столбца 1 должен быть «User_screen.name » и столбец 2 должен быть «User_lang».

Ответ №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')
 

Примечание: я не смог полностью протестировать без входного файла, но я думаю, что это должно сработать.