programming/python

error - 공공데이터 API - SERVICE_KEY_IS_NOT_REGISTERED_ERROR / 에러 해결

slothCat 2020. 12. 7. 18:07
728x90

공공데이터 API 활용시 다음과 같은 에러 발생

 

SERVICE_KEY_IS_NOT_REGISTERED_ERROR<OpenAPI_ServiceResponse>
        <cmmMsgHeader>
                <errMsg>SERVICE ERROR</errMsg>
                <returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>
                <returnReasonCode>30</returnReasonCode>
        </cmmMsgHeader>
</OpenAPI_ServiceResponse>

 

 

○ 해결방안 

1 - 1시간을 기다려 본다.

{ 여기서 미리보기는 해결 되었습니다. }

 

2 - ServiceKey가 UTF-8 로 되어 있어 반드시 인코딩 하여 넘겨야 한다.

import requests
from urllib import parse

url = 'http://apis.data.go.kr/B551182/pubReliefHospService/getpubReliefHospList'
key = '서비스키'
queryParams = f'?{parse.quote_plus("serviceKey")}={key}&' + parse.urlencode({ 
    parse.quote_plus('pageNo') : '1',
    parse.quote_plus('numOfRows') : '10',
    parse.quote_plus('spclAdmTyCd') : 'A0' })

request2 = requests.get(url + queryParams)
print(request2.text)

{ python3 로 구성된 코드이며 urllib2는 python2의 기능이어서 존재 하지 않는다 }

 

3 - params를 구성하는 부분에 띄어쓰기, 공백이 있는지 확인하자!

{ 이부분에서 띄어씌각 존재할 경우 url 넘기면서 재대로 인지 하지 못함. }

반응형