- 인코딩
- 문자 코드를 전산기기 안에서 0,1로 저장하는 방식
- ASCII(미국) >> 모든 언어를 지원하는 유니코드(utf-8)
- 윈도우는 데이터 저장 시, 앞부분에 특정 기호(BOM: Byte Order Mark) 추가
- 절대 경로 / 상대 경로
[plaintext_file_format]
- 상대 경로: 실행한 파일을 기준으로 하부 파일 적기
- 파일 열기 모드
- w: 기존 파일 데이터 삭제
- a: 기존 파일에 추가
.readline
- 위치를 기억해서 해당 line 한 줄씩 가져오기
- 가져올 때마다 줄 위치 바뀜
- csv(Comma seperated value)
reader
- 파일 디스크립터, 구분자
- 최종 결과물: list 타입
delimiter
data_lines = csv.reader(data_file, delimiter=',')
with
- 파일 데이터 읽은 후, with 내부 구문 실행 완료 >> 자동으로 파일 닫힘
with open('../sample.csv',...) as reader_csv:
writer
newline=''
옵션을 통해 불필요한 개행 막기
writerow([리스트])
- 사전 타입으로 csv 파일 쓰기
DictWriter
- key가 field(열)명
fieldnames=field_name_list
writeheader
.writerow({key: value})
- 사전 타입으로 csv 파일 읽기
.DickReader
reader = csv.DickReader('파일명'
)
reader
는 사전 데이터를 리스트 타입으로 가지고 있는 변수
row['key이름']
- 필드명을 최상단으로 뒀기 때문에 key로 value에 접근하는 것과 유사
- XML 사용 이유
- plain text로는 데이터가 가진 의미를 정의할 수 없음
- XML은 마크업(HTML) 언어
- HTML과의 차이는 tag와 속성값을 자유롭게 정의 가능하다는 점
<태그 속성="속성값">내용</태그>
- XML 데이터 파싱
- XML 데이터를 분석하여 빠르게 원하는 데이터를 추출할 수 있도록 트리 형태로 구성
- python의
bs4
라이브러리의 BeautifulSoup
함수
- ```파일 디스크립터, 'xml'(분석할 수 있는 프로그램 이름) ````
.select
- 파싱된 xml 객체에서 태그명을 통해 데이터에 접근 가능
- 리스트 타입으로 반환(동일한 태그명을 가진 다른 데이터 존재)
- 실제 내용 출력은
태그명.text
.select_one
- 하나의 태그 내부의 아이템 하나만 추출하고 싶을 때
- 각 아이템.text
- openAPI는 웹 주소로 되어있음
- 웹페이지 대신 데이터 전달
import requests
- [xml_file_format] 예시 복습
requests.get
- api 결과 가져오기
- 이 결과에
.content
를 해야 실제 데이터 가져올 수 있음
- select의 인자는 원하는 데이터가 담긴 태그명
- 리스트로 반환됨
- for문으로 특정 데이터에 접근
for item in datass:
print(item['data'])
- JSON
- JavaScript Object Notation
- 키와 값
- 서버와 클라이언트, 컴퓨터/프로그램 사이에 데이터 송수신 할 때 유용함
- json 라이브러리
.loads
- 문자열로 된 JSON 포맷의 데이터
data = '{키: 값, ...}'
- 반환형은 dictionary
객체명['키 이름']
.dumps
- 사전형/JSON으로 된 JSON 포맷의 데이터를 문자형으로 변환
indent
.dump
- python 사전 데이터를 파일로 쓰기
사전 데이터, 파일 디스크립터
.load
- 파일로 된 JSON 데이터를 사전처럼 다루기
- JSON 파일 >> 사전형(반환값)