3-1. 축제 및 행사정보 코드

bonvoyage_hy·2019년 12월 11일
0

SKT NUGU Project

목록 보기
4/10

2.2 에서 말한 축제 및 행사정보 데이터셋을 불러오는 코드를 작성하겠다. 코드진행순서는 다음과 같다.
1. 필요한 module
2. conent함수
3. action함수


1. 필요한 module

  • import urllib : URL처리에 관련된 module을 모아놓은 package로 tour api를 불러와 처리하는 데 사용한다.
  • from urllib.request import urlopen : urllib package의 request module에서 urlopen함수를 가져온다. 그 함수를 통해 url처리에 사용한다.
  • import json: 앞서 국내관광정보서비스를 tour api에서 json형식으로 호출하였다. 따라서 json형식으로 데이터를 응답받기에 이를 처리하는데 사용한다.
    • json: 속성-값 쌍 또는 키-값 쌍으로 이루어진 데이터오브젝트를 전달하기위해 인간이 읽을수있는 텍스트사용하는 개방형표준포맷

2. content 함수

content함수는 sigungu, start, end변수를 parameter(매개변수)로 사용한다.
sigungu: 외부에서 입력받은 시군구 코드
start,end: 검색하고자 하는 날짜
매개변수 sigungu,start,end를 각각 sigunguCode변수, eventStartDate변수, eventEndDate변수 에 초기화한다.

다음 코드는 사용자가 요청하는 날짜와 장소에 해당하는 축제공연행사 정보검색을 위해 사용되는 방식이다.
url을 하나씩 살펴보면
"areaCode=1"은 서울특별시를 나타내고, "numOfRow=3"은 한페이지 결과수로 총 3개의 검색된 정보를 가져온다.
"listYN=Y"는 list형태로 결과를 나타내고, "arrange=B"는 인기순서대로 정렬을 나타낸다.
"_type=json"은 json형식으로 데이터 요청함을 의미한다.

sigunguCode변수, eventStartDate변수, eventEndDate변수을 url_s변수에 추가하여 구체적인 장소와 날짜를 추가하여 정보를 검색한다.

urllib.request.urlopen은 URL을 여는 함수로 URL열기에 성공하면 getcode함수를 통해 200을 받는다.
따라서 200은 HTTP상태코드로 웹서버가 요청을 제대로 처리함을 의미한다.

  • data변수는 json decoding을 하는 json.loads() method사용하여 response가 url을 불러서 받은 json문자열을 python type으로 변경한다.
  • 축제의 개수를 나타내는 data_num변수에 total count를 초기화한다.
    • 검색되는 축제가 없으면 null return한다.
    • 검색되는 축제가 있으면 그 개수만큼 append함수를 통해 축제의 title와 contentid를 각각 content_titlecontent_id에 추가한다.
  • URL열기에 실패하면 error code출력한다.

위 코드에서 불러온 content id를 사용하여 소개정보를 해당하는 행사의 상세정보를 가져오기위해 사용되는 방식이다.

전반적인 진행방식은 앞서 말한 code 진행방식과 비슷하다.

  • 검색되는 축제가 없으면 : content_title, place, time, cost에 null추가한다.
  • 검색되는 축제가 있으면 : 그 개수만큼 append함수를 통해 축제의 제목, 장소, 시간, 요금을 각각 content_title, place, time, cost에 추가한다.
  • content함수의 출력할 정보인 content_title,place,time,cost를 return으로 반환한다.

3. action함수

content 함수에서 return 한 값인 content_title, place, time, cost를 매개변수(parameter)로 사용하여 action함수를 진행한다.
action함수에서는 dict(zip[키1,키2],[값1,값2]))을 통해 키=값 형식으로 딕셔너리를 만든다.
따라서 number, title, place, time, cost 각각의 key들을 각각의 value 값과 matching시킨다.
만들어진 딕셔너리를 arr변수에 추가하여 마지막에 함수 return값으로 사용한다.


이렇게 축제 및 행사정보 를 tour api에서 가져오는 코드는 완성이 되었다.
앞서 불러온 내용 외에도 여러 카테고리의 정보를 불러올 수 있으니 다양하게 시도해 볼 수 있다.

profile
TourHanyang

0개의 댓글