#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')
Примечание: я не смог полностью протестировать без входного файла, но я думаю, что это должно сработать.