본문 바로가기

Data Science

OpenApi와 공공데이터에 대한 이해

반응형

[본글은 고려대학교 정보대학 유용재 교수님  COSE 471 데이터과학 수강중 중간고사 정리를 위해 작성하는 글임을 밝힙니다.]

 

공공데이터

  • 공공기관이 생성 또는 취득하여 관리하는 데이터
  • 대표적인 유형으로는 DB, 전자화된 파일이 있음.
  • 기계 판독이 가능한 형태로 정비하고자 노력을 해야한다.

Open Data 5 star 

  • World Wide Web의 창시자인 Time Berners-Lee 가 주장함.
  • 오픈데이터를 5가지의 단계로 분류를 함

 

1. 특정한 SW에서 읽기만 가능. 자유로운 수정 및 변환이 불가

  • 기계 판독 기준에서 미충족 포맷에 속함
  • ex) PDF

2. 특정 sw에서 읽기,수정, 변환이 가능

  • 기계 판독 기준에서 미충족 포맷에 속함
  • ex) HWP,XLS,JPG,PNG,MP3

3. 적어도 하나의 비독점적 SW에서 읽기, 수정, 변환이 가능함

  • 기계 판독 기준에서 오픈 포맷에 속함
  • ex) CSV, JSON,XML

4. URI에 기초하여 데이터의 속성 및 관계에 대해 기술

  • 기계 판독 기준에서 오픈 포맷에 속함
  • ex) RDF(Resource Description Framework)

5. 웹상의 다른 데이터와 연결되어 제공되는 데이터

  • 기계 판독 기준에서 오픈 포맷에 속함
  • ex) LOD (Linked Open Data)

 

공공 데이터의 제공 절차

생성,수집 -> 처리 -> 등록 -> 제공 -> 사후 관리

 

공공 데이터의 제공 신청과 그 절차

  • 공공 데이터 목록에 나타나지 않는 데이터라 할 지라도 제공 신청이 가능함
  • 공공 기관장은 저작권 등의 요소를 검토한 후 10일 이내에 제공 여부를 결정해야 한다.

 

XML 형식 데이터의 수집과 처리

 

1. Beautiful Soup 사용

import requests
from bs4 import BeautifulSoup
url1 = 'http://apis.data.go.kr/B553530/BEEC/BEEC_01_LIST?serviceKey='key = 'REAL_KEY'
url2 = '&apiType=XML&q1=2022&q2=2022&q3=1&q4=1&q5=9'
url = url1 + key + url2
result = requests.get(url)
result = result.content
soup = BeautifulSoup(result, 'lxml-xml')

 

웹 크롤링 할 때 자주 쓰이는 Beautiful Soup는 xml,Html 태그를 파싱하여 데이터를 쓸 수 있게끔 도와주는 라이브러리이다.

 

2. Pandas 사용

csv파일 읽어 올 때 자주 사용하는 pandas에서는 read_xml 함수도 제공을 한다. 

 

import pandas as pd

xml_data = """
<?xml version="1.0"?>
<data>
    <record>
        <name>John</name>
        <age>30</age>
        <city>New York</city>
    </record>
    <record>
        <name>Jane</name>
        <age>25</age>
        <city>Los Angeles</city>
    </record>
</data>
"""

df = pd.read_xml(xml_data, xpath=".//record")
print(df)

 

결과가 아래와 같다.

 

반응형