다양한 데이터 읽기 - XML/JSON 파일

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 유투브 오픈 [구독해보기]

5. 다양한 데이터 읽기 - XML/JSON 파일

5.1. 다양한 데이터 읽기 - XML 파일

  • XML(Extensible Markup Language)
    • 특정 목적에 따라 데이터를 태그로 감싸서 마크업하는 범용적인 포멧
    • 마크업 언어는 태그 등을 이용하여 데이터의 구조를 기술하는 언어의 한 가지
    • 가장 친숙한 마크업 언어가 HTML
    • XML은 HTML과 마찬가지로 데이터를 계층 구조로 표현
    • XML 기본 구조
    <태그 속성="속성값">내용
    
- 태그와 속성은 특정 목적에 따라 임의로 이름을 정해서 사용
- 다른 요소와 그룹으로 묶을 수도 있음
연습문제: XML 파싱
다음과 같이 출력 : 도시별 가장 시간대가 빠른 때의 기상예측
---------
서울: 구름조금
인천: 구름조금
---------
다음 셀에 다음 코드를 넣고 다음 마지막 문장을 입력하여 코드를 완성하시오
from bs4 import BeautifulSoup
import requests
import datetime
import json

info_url = 'http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109' response = requests.get(info_url) soup = BeautifulSoup(response.content, 'lxml')

locations = soup.find_all('location') for location in locations: [----------------------------------------------------------------------]

In [19]:
from bs4 import BeautifulSoup
import requests
import datetime
import json

info_url = 'http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109'
response = requests.get(info_url)
soup = BeautifulSoup(response.content, 'html.parser')

locations = soup.find_all('location')

for location in locations:
    print(location.find('city').text, ":", location.find('wf').text)
서울 : 구름조금
인천 : 구름조금
수원 : 구름조금
파주 : 구름조금
이천 : 구름조금
평택 : 구름조금
백령도 : 구름조금
과천 : 구름조금
광명 : 구름조금
강화 : 구름조금
김포 : 구름조금
시흥 : 구름조금
안산 : 구름조금
부천 : 구름조금
의정부 : 구름조금
고양 : 구름조금
양주 : 구름조금
동두천 : 구름조금
연천 : 구름조금
포천 : 구름조금
가평 : 구름조금
구리 : 구름조금
남양주 : 구름조금
양평 : 구름조금
하남 : 구름조금
안양 : 구름조금
오산 : 구름조금
화성 : 구름조금
성남 : 구름조금
의왕 : 구름조금
군포 : 구름조금
안성 : 구름조금
용인 : 구름조금
광주 : 구름조금
여주 : 구름조금
과제1: 전국 날씨 예측 데이터 도시별, 일자(오전,오후)별 pandas DataFrame 만들고, 출력하기
사용 데이터: http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108
In [ ]:
 
과제2: 아파트매매 실거래자료 데이터 읽기
  • https://www.data.go.kr/dataset/3050988/openapi.do 에서 아파트매매 실거래자료 API 권한을 신청하고,
  • 다음 지역/계약월 XML 데이터를 수신받아서, pandas DataFrame 으로 만들어 출력
    • 지역: 서울특별시 양천구
    • 계약월: 201708
  • pandas DataFrame 컬럼명
    '거래금액', '년', '법정동', '아파트', '월', '일', '전용면적', '지번', '지역코드', '층'
    

5.2. 다양한 데이터 읽기 - JSON 파일

day1_data_science_crawling.ipynb 파일의 3.2. Open API(Rest API)를 활용한 초간단 크롤링 실습 예제 코드 참고

  • JavaScript Object Notation 줄임말
  • 웹환경에서 서버와 클라이언트 사이에 데이터를 주고 받을때 많이 사용
    • Rest API가 주요한 예제
  • JSON 포멧 예

{ "id":"01", "language": "Java", "edition": "third", "author": "Herbert Schildt" }



출처: http://dpug.tistory.com/67#.WbycWshJaUk [퍼그의 전초기지]

본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
In [19]:
from bs4 import BeautifulSoup
import requests
import datetime
import json

info_url = 'http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109'
response = requests.get(info_url)
soup = BeautifulSoup(response.content, 'html.parser')

locations = soup.find_all('location')

for location in locations:
    print(location.find('city').text, ":", location.find('wf').text)
서울 : 구름조금
인천 : 구름조금
수원 : 구름조금
파주 : 구름조금
이천 : 구름조금
평택 : 구름조금
백령도 : 구름조금
과천 : 구름조금
광명 : 구름조금
강화 : 구름조금
김포 : 구름조금
시흥 : 구름조금
안산 : 구름조금
부천 : 구름조금
의정부 : 구름조금
고양 : 구름조금
양주 : 구름조금
동두천 : 구름조금
연천 : 구름조금
포천 : 구름조금
가평 : 구름조금
구리 : 구름조금
남양주 : 구름조금
양평 : 구름조금
하남 : 구름조금
안양 : 구름조금
오산 : 구름조금
화성 : 구름조금
성남 : 구름조금
의왕 : 구름조금
군포 : 구름조금
안성 : 구름조금
용인 : 구름조금
광주 : 구름조금
여주 : 구름조금
과제1: 전국 날씨 예측 데이터 도시별, 일자(오전,오후)별 pandas DataFrame 만들고, 출력하기
사용 데이터: http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108
In [ ]:
 
과제2: 아파트매매 실거래자료 데이터 읽기
  • https://www.data.go.kr/dataset/3050988/openapi.do 에서 아파트매매 실거래자료 API 권한을 신청하고,
  • 다음 지역/계약월 XML 데이터를 수신받아서, pandas DataFrame 으로 만들어 출력
    • 지역: 서울특별시 양천구
    • 계약월: 201708
  • pandas DataFrame 컬럼명
    '거래금액', '년', '법정동', '아파트', '월', '일', '전용면적', '지번', '지역코드', '층'
    

5.2. 다양한 데이터 읽기 - JSON 파일

day1_data_science_crawling.ipynb 파일의 3.2. Open API(Rest API)를 활용한 초간단 크롤링 실습 예제 코드 참고

  • JavaScript Object Notation 줄임말
  • 웹환경에서 서버와 클라이언트 사이에 데이터를 주고 받을때 많이 사용
    • Rest API가 주요한 예제
  • JSON 포멧 예

{ "id":"01", "language": "Java", "edition": "third", "author": "Herbert Schildt" }



출처: http://dpug.tistory.com/67#.WbycWshJaUk [퍼그의 전초기지]