[AITech] 20220118 - Python data handling

1 minute read


강의 복습 내용

Python data handling

CSV

  • CSV, 필드를 쉼표(,)로 구분한 텍스트 파일
  • 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식이라고 생각하면 쉬움
import csv
reader = csv.reader(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
Attribute Default Meaning
delimeter , 글자를 나누는 기준
lineterminator \r\n 줄 바꿈 기준
quotechar 문자열을 둘러싸는 신호 문자
quoting QUOTE_MINIMAL 데이터 나누는 기준이 quotechar에 의해 둘러싸인 레발

HTML

  • World Wide Web(WWW), 줄여서 웹이라고 부름
  • 우리가 늘 쓰는 인터넷 공간의 정식 명칭
  • HTML 예시
<!doctype html>
<html>
    <head>
        <title>Hello HTML</title>
    </head>
    <body>
        <p>Hello World!</p>
    </body>
</html>
  • 파싱에는 정규표현식 모듈 re를 사용하거나 BeautifulSoup 모듈을 사용할 수 있음

XML

  • 데이터의 구조와 의미를 설명하는 TAG(MarkUp)를 사용하여 표시하는 언어
  • TAG와 TAG 사이에 값이 표시되고, 구조적인 정보를 표현할 수 있음
  • XML은 컴퓨터 간에 정보를 주고받기 매우 유용한 저장 방식

  • XML 예시
<?xml version="1.0"?> 
<고양이> 
    <이름>나비</이름> 
    <품종></품종> 
    <나이>6</나이> 
    <중성화></중성화> 
    <발톱 제거>아니요</발톱 제거>
	<등록 번호>Izz138bod</등록 번호>
    <소유자>이강주</소유자>
</고양이>
  • XML도 HTML과 같이 구조적 markup 언어
  • 따라서 정규 표현식 또는 BeautifulSoup을 이용해 파싱 가능
import urllib.request
from bs4 import BeautifulSoup

with open("US08621662-20140107.XML", "r", encoding="utf8") as patent_xml:
    xml = patent_xml.read() # File을 String으로 읽어오기

soup = BeautifulSoup(xml, "lxml") #lxml parser 호출

#invention-title tag 찾기
invention_title_tag = soup.find("invention-title")
print (invention_title_tag.get_text())

JSON

  • JavaScript Object Notation
  • 원래 웹 언어인 JavaScript의 데이터 객체 표현 방식
  • 간결성으로 기계/인간이 모두 이해하기 편함
  • 데이터 용량이 적고, Code로의 전환이 쉬움
  • 이로 인해 XML의 대체제로 많이 활용
{"employees":[ 
    {"name":"Shyam", 
    "email":"shyamjaiswal@gmail.com"}, 
    {"name":"Bob", 
    "email":"bob32@gmail.com"}, 
    {"name":"Jai", 
    "email":"jai87@gmail.com"} ]
} 
  • JSON 파일의 구조를 확인 -> 읽어온 후 -> Dict type처럼 처리
    • json 모듈 사용
# 읽기
import json

with open("json_example.json", "r", encoding="utf8") as f:
    contents = f.read()
    json_data = json.loads(contents)
    print(json_data["employees"])

# 쓰기
import json

dict_data = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

with open("data.json", "w") as f:
    json.dump(dict_data, f)



Leave a comment