Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Archives
Today
Total
관리 메뉴

한바다

xml을 json과 csv로 변환하기 본문

카테고리 없음

xml을 json과 csv로 변환하기

한바다진화 2024. 8. 23. 18:32

✅  XML , JSON, CSV 정리

우선 세가지를 구분해서 정리 해보기로 한다!

 

XML(eXtensible Markup Language) - html태그 형식으로 된 데이터

- 데이터 전송 및 저장을 위해 설계된 마크업 언어

- 태그를 사용하여 데이터 구조화

- 트리구조로 데이터를 표현(계층적 구조)

- 사람이 읽기 쉽고, 기계가 파싱하기 쉬움(파싱이란 복잡한 데이터나 텍스트를 컴퓨터가 이해할 수 있는 형태로 변환하는 것)

- 대용량 데이터 처리에 적합하지만, 구문이 비교적 복잡함

 

JSON = 자바스크립트 객체 문법으로 데이터를 구조화(JavaScript Object Notation) [ {  } ]

- 경량 데이터 교환 형식 : 단순하고 가벼움

- 사람이 읽고 쓰기 쉬우며, 기계가 변환하고 생성하기 쉬움

- 키-값 쌍으로 데이터 표현 객체 기반 구조

- 간결한 문법으로 사람이 읽기 쉽고, 파싱 속도가 빠름

 

CSV = 엑셀형식으로 이루어진 파일

- 간단한 구조 : 행과 열로 구성된 텍스트 파일

- 대부분 스프레드시트 프로그램에서 지원

- 대용량 데이터 저장에는 적합하지만, 중첩 구조나 복잡한 데이터 표현에는 부적합

 

- 데이터 형식 비교 -

항목 XML JSON CSV
구조 계층적(트리구조) 키-값 쌍(객체 기반) 2차원 테이블(행과 열)
파일크기 비교적 큼 작음 매우 작음
가독성 사람이 읽기 쉬움 간결하여 읽귀 쉬움 매우 간단하지만 중첩 불가
사용 용도 복잡한 데이터 및
문서 구조화
웹 데이터 교환 및 API 응답 간단한 데이터 교환 및 저장

- 결론-

XML : 복잡한 구조의 데이터에 적합

JSON : 웹 데이터 교환에 최적화

CSV : 간단한 데이터 저장 및 교환에 매우 효율적

✅ XML파일을 JSON 과 CSV 파일로 변환하기

[XML]
<so2Grade/>
<coFlag>통신장애</coFlag>                                            
<khaiValue/>
<so2Value/>
<coValue/>
<pm10Flag>통신장애</pm10Flag>
<o3Grade/>
<pm10Value/>
<khaiGrade/>
<sidoName>서울</sidoName>
<no2Flag>통신장애</no2Flag>
<no2Grade/>
<o3Flag>통신장애</o3Flag>
<so2Flag>통신장애</so2Flag>
<dataTime>2024-08</dataTime>
<coGrade/>
<no2Value/>
<stationName>중구</stationName>
<pm10Grade>1</pm10Grade>
<o3Value/>
</item>
<item>
<so2Grade>1</so2Grade>
<coFlag/>
<khaiValue>73</khaiValue>
<so2Value>0.002</so2Value>
<coValue>0.4</coValue>
<pm10Flag/>
<o3Grade>2</o3Grade>
<pm10Value>32</pm10Value>
<khaiGrade>2</khaiGrade>
<sidoName>서울</sidoName>
<no2Flag/>
<no2Grade>1</no2Grade>
<o3Flag/>
<so2Flag/>
<dataTime>2024-08</dataTime>
<coGrade>1</coGrade>
<no2Value>0.025</no2Value>
<stationName>한강대로</stationName>
<pm10Grade>1</pm10Grade>
<o3Value>0.057</o3Value>
</item>

[JSON 형식]
{
        "stationName": "중구",
        "dataTime": "2024-08",
        "so2Grade": "",
        "coFlag": "통신장애",
        "khaiValue": "",
        "so2Value": "",
        "coValue": "",
        "pm10Flag": "통신장애",
        "o3Grade": "",
        "pm10Value": "",
        "khaiGrade": "",
        "sidoName": "서울",
        "no2Flag": "통신장애",
        "no2Grade": "",
        "o3Flag": "통신장애",
        "so2Flag": "통신장애",
        "no2Value": "",
        "pm10Grade": "1",
        "o3Value": ""
    },
    {
        "stationName": "한강대로",
        "dataTime": "2024-08",
        "so2Grade": "1",
        "coFlag": "",
        "khaiValue": "73",
        "so2Value": "0.002",
        "coValue": "0.4",
        "pm10Flag": "",
        "o3Grade": "2",
        "pm10Value": "32",
        "khaiGrade": "2",
        "sidoName": "서울",
        "no2Flag": "",
        "no2Grade": "1",
        "o3Flag": "",
        "so2Flag": "",
        "no2Value": "0.025",
        "pm10Grade": "1",
        "o3Value": "0.057"
    }

 

[CSV 형식]
stationName,dataTime,so2Grade,coFlag,khaiValue,so2Value,coValue,pm10Flag,o3Grade,pm10Value,khaiGrade,sidoName,no2Flag,no2Grade,o3Flag,so2Flag,no2Value,pm10Grade,o3Value
중구,2024-08,,,통신장애,,,통신장애,,1,,서울,통신장애,,통신장애,통신장애,,1,
한강대로,2024-08,1,,73,0.002,0.4,,2,32,2,서울,,1,,,0.025,1,0.057