데이터 분석

데이터 분석 공부 #2

jii 2023. 7. 6. 22:49

<API>

 

-API

접근 권한 제한 등의 이유로 db에 접근이 어려울 시 인증된 url만 있으면 데이터에 접근할 수 있는 방식

프로그램 간 데이터 전송 규칙 규정

 

-HTTP

웹페이지 전송 통신 규약

 

        웹데이터 요청(HTTP)

            <-------------------

웹 서버                          웹브라우저

           -------------------->

           웹데이터 전송(HTML)

 

-웹기반 API(HTTP 프로토콜을 사용하는 API)

 

       웹데이터 요청(HTTP)

            <-------------------

웹 서버                          웹브라우저

           -------------------->

      웹데이터 전송(CSV,JASON,XML)

 

-JSON 데이터

 

키:값

json_loads(): json 문자열을 파이썬 객체로 변환

 

여러개의 데이터를 json 배열로
json 문자열을 데이터 프레임으로

-XML 데이터

 

부모/자식

시작/종료 태그

element

xml 문자열을 a변수에 저장

fromstring() 함수 사용해 a 문자열을 xml(book)로 변환

book 객체를 리스트로 변환하여 자식 엘리먼트 구함

book_child 리스트의 각 항목을 name,author,year 변수에 할당하여 text 속성으로 엘리먼트에 있는 텍스트 출력

findtext() 사용하여 출력 가능

book 엘리먼트가 여러개일 때->배열과 같은 구조가 없기 때문에 부모 엘리먼트 사용

부모 엘리먼트 확인

findall() 과 for문 사용해 여러개의 자식 엘리먼트 확인 

 

-API를 호출하는 url

공개 api를 사용하기 위해 호출 url이 필요.

호출 url=> http://data4library. kr/api/loanItemSrch?format=json&startDt=2021-04-01&endDt=2021-04-30&age=20&authKey=[발급받은 키]

 

 

-파이썬으로 api 호출:requests 패키지 사용

import requests

url="http://data4library. kr/api/loanItemSrch?format=json&startDt=2021-04-01&endDt=2021-04-30&age=20&authKey=[발급받은 키]"

r=requests.get(url)

 

*json 문자열을 파이썬 객체로 변환하여 반환

data=r.json()

print(data)

 

*data 딕셔너리의 구조 변경->books 딕셔너리로 

books=[]

for d in data['response']['docs']:

        books.append(d['doc'])

 

*데이터 프레임에 리스트 저장하기

book_df=pd.DataFrame(books)

books_df

 

*json으로 변환하여 저장하기

books_df.to_json('20sbook.json')