Python Data Handing

7950 단어 pythonpython

💡 기초적인 Data type에는 CSV, 웹(html), XML, JSON이 있다

csv( Comma Separate Value )

  • 필드를 쉼표(,)로 구분한 텍스트 파일
  • 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식이라고 생각하면 쉽다
  • 탭( TSV ), 빈칸( SSV ) 등으로 구분해서 만들기도 한다
  • 통칭하여 character-separated values( CSV )로 부른다
  • 엑셀에서는 다른 이름 저장 기능으로 사용 가능
  • 파이썬에서는 간단히 CSV파일을 처리하기 위해 csv객체를 제공

📍 csv 객체 활용

import csv

reader = csv.reader(f, delimiter = ',',
		    quotechar='"',
            	    quoting=csv.QUOTE_ALL)
  • delimiter : 글자를 나누는 기준( Default : . )
  • lineterminator : 줄 바꿈 기준( Default : \r\n )
  • quotechar : 문자열을 둘러싸는 신호 문자( Default : " )
  • quoting : 데이터 나누는 기준이 quotechar에 의해 둘러싸인 레벨( Default : QUOTE_MINIMAL )

WEB

  • World Wide Web( WWW )을 줄여서 WEB( 웹 )이라고 부름

  • 우리가 늘 쓰는 인터넷 공간의 정식 명칭

  • 팀 버너스리에 의해 1989년 처음 제안, 원래는 물리학자들간 정보 교환을 위해 사용

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

    • 웹 상의 정보를 구조적으로 표현하기 위한 언어
    • 제목, 단락, 링크 등 요소 표시를 위해 Tag를 사용
    • 모든 요소들은 꺽쇠 괄호 안에 둘러 쌓여 있음

      <title>Hello,World</title><title> Hello, World </title>

    • 모든 HTML은 트리 모양의 포함관계를 가진다
    • 일반적으로 웹 페이지의 HTML 소스파일은 컴퓨터가 다운로드 받은 후 웹 브라우저가 해석 및 표시
  • 데이터를 표시하기 위해 HTML 형식을 사용

  • 정규표현식으로 Parsing 가능

Web 동작 방식

eXtensible Markup Language( XML )

  • 데이터의 구조와 의미를 설명하는 TAG( MarkUp )를 사용하여 표시하는 언어
  • TAG와 TAG사이에 값이 표시되고, 구조적인 정보를 표현
  • HTML과 문법이 비슷
  • 정보의 구조에 대한 정보인 스키마와 DTD 등으로 정보에 대한 정보( 메타정보 )가 표현되며, 용도에 따라 다양한 형태로 변경이 가능
  • XML도 HTML과 같이 구조적 MarkUp 언어이다
  • XML은 컴퓨터 간에 정보를 주고 받기 매우 유용한 저장 방식으로 사용
  • 정규표현식으로 Parsing 가능
    • 주로 beautifulsoup으로 파싱
      • HTML, XML등 Markup 언어 Scraping을 위한 대표적인 도구
      • lxml과 html5lib과 같은 Parser를 사용
      • 속도는 상대적으로 느리나 간편히 사용할 수 있다

📍 XML 예제

<?xml version="1.0"?>
<고양이> 
	<이름>나비</이름> 
    <품종></품종> 
    <나이>6</나이> 
    <중성화></중성화>
    <발톱 제거>아니요</발톱 제거>
	<등록 번호>Izz138bod</등록 번호>
	<소유자>이강주</소유자>
</고양이>

JavaScript Object Notation( JSON )

  • 원래 웹 언어인 Java Script의 데이터 객체 표현 방식

  • 간결성으로 기계 / 인간이 모두 이해하기 편함

  • 데이터 용량이 적고, Code로의 전환이 쉽다

  • 이로 인해 XML의 대체체로 많이 활용되고 있다

    💡 왼쪽이 XML, 오른쪽이 JSON
    👉 JSON이 XML보다 간결하게 표현이 가능하다

  • JSON 모듈을 사용하여 손 쉽게 파싱 및 저장이 가능

  • 데이터 저장 및 읽기는 dict type과 상호 호환이 가능

  • 웹에서 제공하는 API는 대부분 정보 교환 시 JSON을 활용한다

    • 각 사이트 마다 Developer API의 활용법을 찾아 사용해야 한다

좋은 웹페이지 즐겨찾기