SW/Python

XML to JSON ( JSON to XML ) 파이썬 스크립트 변환

얇은생각 2018. 12. 3. 08:00
반응형

이번 포스팅은 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


이상 포스팅을 마치도록 하겠습니다.

반응형