일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- perfect
- postgresql
- insert
- rethinkdb
- centos
- openpyxl
- postgres
- PYTHON
- nohup
- ubuntu
- ssh
- 28015
- port forwarding
- nGrinder
- STF
- appium server
- STF_PortForwarding
- SWIFT
- Jupyter
- appium
- create table
- mysql
- nmap
- Jupyter Notebook
- 실행권한
- ftp
- Materials
- GoCD
- sshpass
- kitura
- Today
- Total
don't stop believing
openpyxl을 이용해 json 파일 만들기 본문
엑셀 파일을 json파일로 만들어 봅시다.
변경하려는 엑셀 파일은 앞서 설명한 영어단어 엑셀입니다.
# -*- 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 구조는 엑셀에 맞게 변경해야 한다.
'Python > openpyxl' 카테고리의 다른 글
엑셀에 내가 찾는 문자가 있는지(없는지) 검색 (0) | 2017.10.20 |
---|---|
openpyxl을 이용해서 sql 쿼리문 만들기 (1) | 2017.09.25 |
openpyxl로 엑셀파일 다루기 (2) | 2017.09.25 |