책 <혼자 공부하는 데이터분석 with 파이썬>: 88p - 115p

르네·2023년 9월 23일
0

Python

목록 보기
11/45

<혼자 공부하는 데이터분석 with 파이썬> 책을 보고 실습하며 중요한 내용을 정리했습니다.

파이썬에서 JSON 데이터 다루기

: 대부분의 프로그래밍 언어는 JSON 형태의 텍스트를 읽고 쓸 수 있다. 파이썬도 가능하다.
: JSON 객체는 파이썬 딕셔너리와 아주 유사한 형태를 가진다.

{"키":"값"}

ex.

d = {"name" : "혼자 공부하는 데이터 분석"}
print(d['name'])
  1. 파이썬 객체를 JSON 문자열로 변환하기: json.dumps() 함수
    -> 웹 기반 API는 전송하려는 파이썬 객체를 json.dumps() 함수를 사용하여 JSON 문자열을 변환하여 전송한다. 그런데 이런 JSON 문자열을 파이썬 프로그램에 사용하려면 다시 파이썬 딕셔너리로 바꾸어야 한다.
d_str = json.dumps(d, ensure_ascii=False)
print(d_str)
  1. JSON 문자열을 파이썬 객체로 변환하기: json.loads() 함수
d2 = json.loads(d_str)
print(d2['name'])
d3 = json.loads('{"name": "혼자 공부하는 데이터 분석", "author": "박해선", "year": 2022}')
print(d3['name'])
print(d3['author'])
print(d3['year'])

※ 세겹따옴표(""")를 사용하면 긴 문자열을 줄바꿈하여 입력할 수 있다.

d4_str = """
[
  {"name": "혼자 공부하는 데이터 분석", "author": "박해선", "year":2022},
  {"name": "혼자 공부하는 머신러닝+딥러닝", "author": "박해선", "year": 2020}
]
"""
d4 = json.loads(d4_str)
print(d4[0]['name'])
  1. JSON 문자열을 데이터프레임으로 변환하기: read_json() 함수
  • 판다스는 JSON 문자열을 읽어서 데이터프레임으로 변환하는 read_json() 함수를 제공한다.
import pandas as pd
pd.read_json(d4_str)
  • JSON 문자열을 파이썬 객체로 만든 다음 Data Frame 클래스를 사용하기
pd.DataFrame(d4)

파이썬에서 XML 데이터 다루기

  • XML은 엘리먼트들이 계층 구조를 이루면서 정보를 표현한다. 엘리먼트는 시작 태그와 종료태그로 감싼다. 태그는 <기호로 시작해서>기호로 끝나며 태그 이름은 영문자와 숫자를 사용한다. 시작태그와 종료 태그의 이름은 같아야 한다.
  1. XML 문자열을 파이썬 객체로 변환하기: fromstring() 함수
x_str = """
<book>
  <name>혼자 공부하는 데이터 분석</name>
  <author>박해선</author>
  <year>2022</year>
</book>
"""
  • 파이썬에서 기본으로 제공되는 xml 패키지는 XML 문서를 읽고 쓸 수 있는 간편한 API를 제공한다.
import xml.etree.ElementTree as et
book = et.fromstring(x_str)
  • JSON 패키지는 JSON 문자열을 파이썬 객체로 변환하지만, fromstring() 함수가 반환하는 객체는 단순한 파이썬 객체가 아니라 ElementTree 모듈 아래에 정의된 Element 클래스의 객체다.
print(type(book))
  • book 객체는 x_str에서 가장 먼저 등장하는 부모 엘리먼트인 에 해당한다.
print(book.tag)
  1. 자식 엘리먼트 확인하기: findtext() 메서드
  • findtext() 메서드를 사용하여 해당하는 자식 엘리먼트를 탐색하여 자동으로 텍스트를 반환하기
name = book.findtext('name')
author = book.findtext('author')
year = book.findtext('year')
print(name)
print(author)
print(year)
  1. 여러 개의 자식 엘리먼트 확인하기: findall() 메서드와 for문
  • 동일한 이름을 가진 여러 개의 자식 엘리먼트를 찾을 때는 findall() 메서드와 for 문을 함께 사용하면 편리하다.
for book in books.findall('book'):
  name = book.findtext('name')
  author = book.findtext('author')
  year = book.findtext('year')
  print(name)
  print(author)
  print(year)
  print()

API로 20대가 가장 좋아하는 도서 찾기

  1. API를 호출하는 URL 작성하기
  1. API 인증키 발급하기
  • 호출 URL을 사용하려면 API 인증키가 필요하다.
  1. 파이썬으로 API 호출하기: requests 패키지
import requests
  
url = "http://data4library.kr/api/loanItemSrch?format=json&startDt=2021-04-01&endDt=2021-04-30&
age=20&authKey=67008aac3bb11753da5092d2c922c8b2ec4753b8826fea5d6b034a8cb26dcf88"
  
r = requests.get(url)
  • requests 패키지를 임포트하여 API 인증키를 넣은 호출 URL을 변수에 저장한다. 이 URL은 HTTP GET 방식으로 파라미터 값을 전달하기 때문에 URL을 requests.get() 함수에 전달한다.
  • get() 함수가 반환하는 값은 API 호출의 결과를 담고 있는 requests 패키지의 Response 클래스 객체다. --- API 인증키 활성화되면 다시! (105p부터!)
profile
데이터분석 공부로그

0개의 댓글