2014-06-23 2 views
0

일부 Twitter Streaming API 데이터를 구문 분석하고 Excel 통합 문서의 열에 특정 필드를 작성하려고합니다. xlwt을 사용하여 Excel 문서에 열을 쓸 수 있었지만 열 머리글을 포함하는 좋은 방법을 찾지 못했습니다.xlwtin Python을 사용하여 열 머리글 쓰기

각 열이 행 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 
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') 
+0

적어도 파싱중인 json 파일의 샘플에 액세스하는 것이 유용 할 것입니다. – ChrisProsser

+0

데이터가 Twitter Streaming API에서 가져온 것이므로 서비스 약관에 따라 원시 데이터를 공유 할 수 없습니다. –

+0

몇 가지 레코드를 가져 와서 사용자/위치/짹짹 콘텐츠와 관련된 데이터를 난독 화하는 옵션이있을 수 있습니다 (허용되는 것으로 생각되는 경우). 입력에 액세스하지 않고 어떻게 도울 수 있는지 잘 모르겠습니다. – ChrisProsser

답변

1

"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 
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') 

참고 : 입력 파일을 사용하지 않고 완전히 테스트 할 수는 없지만 정상적으로 작동해야합니다.