일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 28015
- ssh
- mysql
- kitura
- Jupyter Notebook
- SWIFT
- PYTHON
- STF_PortForwarding
- Jupyter
- appium
- openpyxl
- Materials
- appium server
- STF
- sshpass
- nGrinder
- port forwarding
- rethinkdb
- nohup
- perfect
- create table
- centos
- ubuntu
- insert
- postgres
- nmap
- 실행권한
- GoCD
- postgresql
- ftp
- 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 |