상세 컨텐츠

본문 제목

파이썬 오픈API 호출 샘플

카테고리 없음

by webtattoo 2019. 12. 13. 18:06

본문

파이썬 오픈API 호출 샘플

open_api_py

 

import xml.etree.ElementTree as elementTree

from urllib import urlencode, quote_plus, urlopen
from urllib2 import Request

SERVICE_KEY = 'service_key'


def get_url_pharmacy():
    url = 'http://apis.data.go.kr/B552657/ErmctInsttInfoInqireService/getParmacyFullDown'
    parameter = '?' + 'ServiceKey=' + SERVICE_KEY + '&' + urlencode(
        {quote_plus('pageNo'): '1', quote_plus('numOfRows'): '100'})
    print(url)
    print(parameter)
    return url + parameter;


def get_url_library():
    url = 'http://api.data.go.kr/openapi/lbrry-std'
    parameter = '?' + 'ServiceKey=' + SERVICE_KEY + '&' + urlencode(
        {quote_plus('pageNo'): '1', quote_plus('numOfRows'): '100', quote_plus('type'): 'xml'})
    print(url)
    print(parameter)
    return url + parameter


def get_data_by_url(url):
    request = Request(url)
    request.get_method = lambda: 'GET'
    response = urlopen(request).read()
    print(response)
    return response


def get_xml_root_from_string(value):
    tree = elementTree.ElementTree(elementTree.fromstring(value))
    print(tree)
    rootNode = tree.getroot()
    print(rootNode)

    return rootNode


def do_pharmacy_data():
    response = get_data_by_url(get_url_pharmacy())
    rootNode = get_xml_root_from_string(response)
    print(rootNode)

    itemList = rootNode.getiterator("item")
    print(itemList)

    index = 0
    for x in itemList:
        index += 1
        dutyAddr = x.findtext('dutyAddr')
        dutyName = x.findtext('dutyName')
        wgs84Lat = x.findtext('wgs84Lat')
        wgs84Lon = x.findtext('wgs84Lon')
        print(index, dutyName, dutyAddr, wgs84Lat, wgs84Lon)


def do_library_data():
    response = get_data_by_url(get_url_library())
    rootNode = get_xml_root_from_string(response)
    print(rootNode)

    itemList = rootNode.getiterator("item")
    print(itemList)

    index = 0
    for x in itemList:
        index += 1
        lbrryNm = x.findtext('lbrryNm')
        rdnmadr = x.findtext('rdnmadr')
        homepageUrl = x.findtext('homepageUrl')
        latitude = x.findtext('latitude')
        hardness = x.findtext('hardness')
        print(index, lbrryNm, rdnmadr, latitude, hardness)


################################################################################
################################################################################
if __name__ == '__main__':
    do_pharmacy_data()
    # do_library_data()

 

코드 샘플