2014-12-09 7 views
1

xlsxwriter 모듈을 처음 사용하기 때문에 오류가 발생합니다.Python xlsxwriter TypeError : 튜플 인덱스는 str이 아닌 정수 여야합니다.

import xlsxwriter 
import csv 
from csv import DictReader, DictWriter 
import sys 
import time 

csvfile = sys.argv[1] 

recFields = ['Recommendation1', 'Recommendation2', 'Notes'] 

recCore = ['Delete', 'Recommended', 'Keep', 'Keep + Modify', 'Keep + Modify + Store'] 
recPer = ['Delete', 'Archive', 'Archive + Modify', 'Archive + Modify + Store', 'Keep', 'Keep + Modify', 'Keep + Modify + Store'] 

date_string = time.strftime("%Y-%m-%d-%H%M") 



workbook = xlsxwriter.Workbook('Test'+date_string+'.xlsx') 
worksheet = workbook.add_worksheet() 

headFormat = workbook.add_format({'font_color': 'white', 'bg_color': 'black'}) 
cellFormat = workbook.add_format({'border': 'style=1'}) 

row = 0 
col = 0 
row_count = 0 

for r in recFields: 
    worksheet.write(row, col, r, headFormat) 
    col += 1 
with open(csvfile) as infile: 
    read = csv.reader(infile) 


    for line in read: 
     row_count += 1 
     if row == 0: 
      for l in line: 
       worksheet.write(row, col, l, headFormat) 
       col += 1 
      row += 1 
     else: 
      col = 3 
      for l in line: 
       worksheet.write(row, col, l, cellFormat) 
       col += 1 
      row += 1 

workbook.close() 

CSV 파일 입력은 다음과 같이이다 :

Type,Release_Number,Release_Date,Number,Digital_Vaccine_Name,Category,NUM,Description,Standard Settings,Other Settings,Action 
New,9630,"December 2, 2014 ",16999,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17044,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17065,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17067,Sample: sample-sample,Sample,2014-55,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17068,Sample: sample-sample,Sample,2014-56,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17071,Sample: sample-sample,Sample,2014-57,Example.,,default,keep+modify 
New,9630,"December 2, 2014 ",17072,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17073,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17074,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17075,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17076,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17077,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17078,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17079,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
New,9630,"December 2, 2014 ",17080,Sample: sample-sample,Sample,,Example.,default,other-setting,keep+modify 
Modified Filter,9630,"December 2, 2014 ",9543,Sample: sample-sample,,,,,, 
Modified Filter,9630,"December 2, 2014 ",13299,Sample: sample-sample,,,,,, 
Modified Filter,9630,"December 2, 2014 ",16797,Sample: sample-sample,,,,,default, 
Modified Filter,9630,"December 2, 2014 ",16801,Sample: sample-sample,,,,,default, 

나는이 오류가 무엇입니까 :

Traceback (most recent call last): 
    File "DV_ParseTest.py", line 68, in <module> 
    workbook.close() 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/workbook.py", line 286, in close 
    self._store_workbook() 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/workbook.py", line 509, in _store_workbook 
    xml_files = packager._create_package() 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/packager.py", line 144, in _create_package 
    self._write_styles_file() 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/packager.py", line 391, in _write_styles_file 
    styles._assemble_xml_file() 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/styles.py", line 67, in _assemble_xml_file 
    self._write_borders() 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/styles.py", line 391, in _write_borders 
    self._write_border(xf_format) 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/styles.py", line 419, in _write_border 
    xf_format.left_color) 
    File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/styles.py", line 474, in _write_sub_border 
    attributes.append(('style', border_styles[style])) 
TypeError: tuple indices must be integers, not str 
을 나는 다음과 같은 우분투 리눅스 시스템에서 코드를 파이썬 버전 2.7.3을 실행하고

도움을 주시면 감사하겠습니다.

업데이트

나는 다른 오류를 수정하기 위해 여기에 코드를 변경했습니다. 나는 아직도이 오류가 있습니다. 'border'의 값은 단지 정수가 아닌 문자열이어야한다

cellFormat = workbook.add_format({'border': 'style=1'}) 

:

답변

3

문제는이 라인입니다. 당신이 원할 것입니다.

cellFormat = workbook.add_format({'border': 1}) 
+0

정확히 똑같은 결론입니다. +1 –

관련 문제