don't stop believing

openpyxl을 이용해 json 파일 만들기 본문

Python/openpyxl

openpyxl을 이용해 json 파일 만들기

Tongchun 2017. 9. 25. 22:24

엑셀 파일을 json파일로 만들어 봅시다.

변경하려는 엑셀 파일은 앞서 설명한 영어단어 엑셀입니다.

[openpyxl을 이용해서 sql 쿼리문 만들기]

# -*- coding:utf-8 -*- import openpyxl import codecs # 엑셀파일 열기 filename = "word-list-01.xlsm" book = openpyxl.load_workbook(filename) # 엑셀 파일의 첫번째 시트 추출하기 sheet = book.worksheets[0] # json 형식에 맞게 문자 변경 def replaceToJson(text): if text == None: return "" else: text = text.replace("\n", "\\n") text = text.replace('"', '\\"') return text # 저장할 json 파일 오픈 jsonFile = codecs.open('word.json', 'w', 'utf-8') jsonFile.write('{"eng": [' + '\n') # 시트의 각 행을 순서대로 추출하기 i = 1 max_row = sheet.max_row for row in sheet.rows: word = replaceToJson(row[0].value) means = replaceToJson(row[1].value) example = replaceToJson(row[2].value) if i != max_row: jsonword = '\t{"word": "%s", "korean": "%s", "example": "%s"},' % (word, means, example) else: jsonword = '\t{"word": "%s", "korean": "%s", "example": "%s"}' % (word, means, example) # json 파일에 쓰기 jsonFile.write(jsonword + '\n') i = i + 1 jsonFile.write(']}') jsonFile.close()

json 마지막 오브젝트의 컴마를 없애기 위해 sheet의 최대 열수(max_row)를 비교한다.

json 구조는 엑셀에 맞게 변경해야 한다.



Comments