프로그래밍을 한다면 꼭 알아야하는 파일형식 csv, html, xml, json

1. csv

 

데이터를 쉼표로 구분한 텍스트 파일

 

구분자는 탭(tab separated value), 빈칸(single separated value), 쉼표(comma separated value) 등이 있는데

 

이들을 모두 통칭하여 csv(character separated value)라고 부르기도 한다

 

엑셀을 다른 이름으로 저장할 때 csv로 저장할 수 있다

 

 

open으로 csv파일 읽어오고 readline()으로 한줄씩 읽어오며 처리

 

맨 윗줄(0번째 줄)은 보통 header로 변수명임

 

‘w’모드로 csv파일을 만들어 write함수로 데이터를 저장할 수도 있음

 

 

위와 같이 미국정보만 얻어 w모드로 연 다음에 write함수로 파일에 저장시키면

 

 

이렇게 저장 가능

 

,가 구분자이다보니 “,” 이것이 실제로 구분자가 아닌 경우에 어떻게 처리할지 고민이 듦

 

예를 들면 이름을 한번에 나타내고 싶은데 “yun, daehyuck”이렇게 적혀있을 때 단순히 처리하면 yun이랑 daehyuck가 나뉠수 있음

 

파이썬에서는 csv객체를 이용해서 csv파일을 처리할 수 있음

 

import csv 사용

 

 

quotechar은 하나의 데이터를 어떤 문자로 묶을지

 

 

한글 문자열 앞에는 보통 u”~”라고 씀

 

성남시에 해당하는 데이터를 읽어와 새로운 파일에 저장하는 것임

 

인코딩 방식에 대하여, cp949는 윈도우에서 한글파일 읽어올 때 쓴다.

 

csv.writer에서 quotechar이 ‘인데 어떤 일이 벌어지냐?

 

 

‘로 데이터를 하나씩 묶어온다

 

 

2. web

 

World Wide Web

 

인터넷 공간의 정식명칭이다. 원래는 물리학자들 간의 정보 교환 장소가 시초

 

데이터 송수신을 위한 HTTP 프로토콜

 

데이터를 표시하기 위한 HTML

 

웹의 동작 방식은?

 

 

사람이 서버에 여러가지 요청을 하면 서버는 데이터베이스를 처리하는 등 여러 요청에 대응함

 

대응한 것을 HTML이나 XML등으로 결과를 반환해줌

 

사람은 브라우저에서 이것을 다운받아 브라우저가 해석한 HTML,XML 결과를 보는 것

 

 

3. html

 

웹상의 정보를 구조적으로 표현하는 언어

 

xml과는 달리 데이터의 표현에 중점을 둔다

 

제목, 단락, 링크 등 요소를 태그 <>로 표시함

 

태그 사이에 원소 값이 포함 <title> hello, world </title>

 

HTML은 트리구조를 가짐

 

 

HTML의 기본 구조

 

HTML은 일종의 규칙이 있어서 이를 활용하여 데이터를 추출하여 분석할 수 있음

 

 

4. XML

 

eXtensible Markup Language

 

데이터의 교환,저장,전송에 중점

 

데이터의 구조와 의미를 태그를 사용하여 표현

 

HTML과 딱히 문법상 차이가 없다

 

컴퓨터 간 정보를 주고받기에 매우 유용한 저장방식

 

메타정보(어떤 특정 정보에 대한 정보)를 스키마(정보의 구조에 대한 사전 정보)와 DTD등으로 표현

 

XML의 예시

 

HTML보다 넓게 표현하나?

 

정규표현식으로 parsing 가능한데, 좀 더 쉬운 도구들이 개발되어 있다

 

파이썬 자체 xml도 있고 대표적으로 BeautifulSoup를 사용

 

lxml(가장 빠름), html5lib 같은 parser와 같이 사용

 

book.xml의 모습

 

<author>에 속한 text를 뽑고싶다

 

 

books.xml을 읽어와서

 

내용을 beautifulsoup의 lxml로 파싱한 soup객체를 생성

 

find_all은 해당 태그 정보를 전부 찾아오는 것

 

get_text()하면 해당 태그의 텍스트를 가져옴

 

 

5. JSON

 

웹 언어인 자바 스크립트의 데이터 객체 표현 방식

 

기계와 인간이 모두 이해하기 쉬운 간결함

 

데이터 용량이 적고 코드 전환도 쉽다

 

XML의 대체로 각광

 

웹의 api는 대부분 json으로 정보를 교환

 

 

파이썬의 dict type처럼 key value쌍으로 데이터를 표시함

 

 

왼쪽이 xml이고 오른쪽이 json으로 동일한 내용을 표시하는데

 

json이 누가봐도 간단함

 

json 모듈로 데이터를 읽어오고(load) 파싱할 수 있고 dump로 저장할 수도 있다.

 

dict type이기 때문에 당연히 dict의 모든 함수를 사용할 수 있다

 

 

json 데이터를 읽어와 출력하는 코드

 

dict type이기 때문에 dict처럼 다루면 된다

 

 

dict 데이터를 dump하면  json 파일에 저장

 

 

저장한 파일을 읽어보면 위와 같다.

 

 

TAGS.

Comments