반응형
이번 포스팅은 python을 활용하여 xml을 json으로 변환하는 방법입니다.
우선적으로 변환을 하기 위해 관련 xmltodict 패키지를 다운받아야합니다.
pip install xmltodict
라이브러리를 다운 받았다면 우선 임의의 xml 파일을 생성합니다.
xml_to_json.xml
<world> <people> <name> Earth </name> <tall> 183cm </tall> </people> <people> <name> Jupiter </name> <tall> 175cm </tall> </people> <people> <name> Mars </name> <tall> 168cm </tall> </people> </world> | cs |
xml을 생성하셨다면 아래와 같은 python 코드를 작성합니다.
저와 똑같이 작성하셔도 무방하지만 다르다면 파일명과 확장자를 맞춰주셔야합니다.
xml_to_json.py
import json import xmltodict with open("xml_to_json.xml",'r') as f: xmlString = f.read() print("xml input (xml_to_json.xml):") print(xmlString) jsonString = json.dumps(xmltodict.parse(xmlString), indent=4) print("\nJSON output(output.json):") print(jsonString) with open("xml_to_json.json", 'w') as f: f.write(jsonString) | cs |
python 코드를 작성하시고 실행하셨다면 아래와 같은 파일이 생성되었을 것입니다.
xml_to_json.json
{ "world": { "people": [ { "name": "Earth", "tall": "183cm" }, { "name": "Jupiter", "tall": "175cm" }, { "name": "Mars", "tall": "168cm" } ] } } | cs |
json_to_xml.json
{ "world": { "people": [ { "name": "Earth", "tall": "183cm" }, { "name": "Jupiter", "tall": "175cm" }, { "name": "Mars", "tall": "168cm" } ] } } | cs |
json_to_xml.py
import json import xmltodict with open('json_to_xml.json', 'r') as f: jsonString = f.read() print('JSON input (json_to_xml.json):') print(jsonString) xmlString = xmltodict.unparse(json.loads(jsonString), pretty=True) print('\nXML output(json_to_xml.xml):') print(xmlString) with open('json_to_xml.xml', 'w') as f: f.write(xmlString) | cs |
위 두 코드의 예제를 활용하신다면 반대로 아래와 같이 json을 xml로 변환할 수 있습니다.
필요에 따라 활용하신다면 개발하는 데 큰 도움이 될 것 같습니다.
json_to_xml.xml
<?xml version="1.0" encoding="utf-8"?> <world> <people> <name>Earth</name> <tall>183cm</tall> </people> <people> <name>Jupiter</name> <tall>175cm</tall> </people> <people> <name>Mars</name> <tall>168cm</tall> </people> </world> | cs |
이상 포스팅을 마치도록 하겠습니다.
반응형
'SW > Python' 카테고리의 다른 글
udemy : 강의 다운로드 방법 (python) (0) | 2019.06.13 |
---|---|
[ python ] 텐서플로우 로또 예측 프로그램 (4) - 랜덤 번호 추출 (0) | 2019.01.26 |
[ python ] 텐서플로우 로또 예측 프로그램 (3) - 결과값 메일로 보내기 (0) | 2018.11.19 |
[ python ] 텐서플로우 로또 예측 프로그램 (2) - 로또 API (0) | 2018.11.19 |
[ python ] 텐서플로우 로또 예측 프로그램 (1) - 설치 및 개발환경 (0) | 2018.11.17 |