오예예
144
2020-02-21 16:16:59 작성 2020-02-21 16:57:01 수정됨
4
920

오픈 api를 이용해서 데이터를 뽑아보려고 하는데 포스트맨이랑 결과가 다를까요..?


안녕하세요 파이썬 배운지 한 달이 되는 애기 수준의 학생입니다..

강의를 반복해서 듣고 혼자서 해결하려고 했는데 도무지 안되서 이렇게 여쭤봅니다!

상황

공공데이터에 있는 정류장 버스 도착 정보 api를 활용해서 먼저 되는지 안되는지 확인해보려고 

포스트맨으로 키값이랑 요청변수에 맞는 값을 넣어서 이렇게 출력하고 잘 작동이 되었습니다. (사진1)

'ㅋㅎㅎㅎ 이제 파이썬으로 옮겨야지' 

하고 아나콘다로 파이썬 코드를 입력했습니다.

작성한 코드는 다음과 같습니다.


import requests

service_key = '오예예의 키 값'
params = '&cityCode=33010&nodeld=CJB283000059'
open_api = 'http://openapi.tago.go.kr/openapi/service/ArvlInfoInqireService/getSttnAcctoArvlPrearngeInfoList?ServiceKey=' + service_key + params

res = requests.get(open_api)
print(res.text)







당연히 포스트맨과 똑같은 값을 넣었기에 같은 값이 나올 것이라고 생각했지만

결과는 달랐습니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><response><header><resultCode>00</resultCode><resultMsg>NORMAL SERVICE.</resultMsg></header><body><items/><numOfRows>10</numOfRows><pageNo>1</pageNo><totalCount>0</totalCount></body></response>


normal service로 나온 걸 봐서 작동은 된 거 같은데 가장 중요한 items의 항목이 없어졌습니다..

제가 적은 코드 중에 왜 결과 값이 안 나왔는지 여쭤볼 수 있을까요?? ㅠㅠㅜㅠㅠ


(사진1)




0
  • 답변 4

  • 이설란
    3k
    2020-02-21 16:42:18

    전후사정은 잘 모르겠지만 같은 변수를 넣었다면

    URLEncding을 변경해보시면 어떤까요?

  • 오예예
    144
    2020-02-21 16:58:06

    답변 달아주셔서 감사합니다! URLEncoding에 대해 잘 몰라서 알아보고 시도해볼께요!

  • 멘탈조각
    1k
    2020-02-21 18:15:03

    공식 문서를 보십시오.....

    >>> payload = {'key1': 'value1', 'key2': 'value2'}
    >>> r = requests.get('https://httpbin.org/get', params=payload)
  • 오예예
    144
    2020-02-21 21:51:32

    아.. 차마 못봤었네요.. 앞으로 자세히 보는 습관을 더 가져야겠습니다 감사합니다 !

  • 로그인을 하시면 답변을 등록할 수 있습니다.