python으로 API 호출

Scope: This post will help you learn to make API calls using python to fetch data (GET requests).


오늘날 데이터는 애플리케이션/비즈니스를 구동하기 때문에 가장 중요한 위치를 차지하고 있습니다.응용 프로그램은 사이트, 데이터 과학, 기계 학습 모델 등일 수 있습니다. 따라서 이 데이터를 응용 프로그램에 어떻게 사용하는지 이해하는 것이 중요합니다. 이 글은 이 점을 이해하는 데 도움을 줄 것입니다.
주의: 우리는 이러한 개념을 이해하기 위해 몇 가지 코드 부분을 볼 것이다.전체 코드를 찾을 수 있습니다here.

API란?


기본적으로 API는 하나의 채널처럼 응용 프로그램이 서로 통신할 수 있도록 허용한다. (요청을 보내고 데이터를 받는 것과 반대로도 마찬가지다.)

자료 출처: medium

API 호출


잠깐만, 그런데 어떻게 해?python에서 데이터를 얻는 방법은 서로 다르다(예를 들어 socket. 본고에서 우리는python의 requests 모듈을 사용할 것이다requests는 간단하고 우아한 HTTP 라이브러리이다.이 소프트웨어를 설치하려면 다음 명령을 사용하십시오
pip install requests
설치된 버전을 확인하려면 다음 명령을 사용하십시오
 pip freeze | grep requests
 requests==2.22.0
추가 정보requests
보아하니 당신의 환경은 이제 약간의 요구를 던질 수 있을 것 같습니다.유행하는 Dev.to API, 즉
def get_data(self, api):
        response = requests.get(f"{api}")
        if response.status_code == 200:
            print("sucessfully fetched the data")
            self.formatted_print(response.json())
        else:
            print(f"Hello person, there's a {response.status_code} error with your request")
일단 데이터를 받게 되면, 그것은 이렇게 될 것이다.

위에서 말한 바와 같이, 우리는 먼저 상태 코드를 검사한 후에 데이터를 인쇄한다.이 코드는 우리의 요청에 따라 받은 응답을 알려 줍니다.200 코드는 우리가 정보를 성공적으로 받았다는 것을 나타낸다.여러 코드는 서로 다른 응답을 나타낸다. 아래와 같다.
비밀 번호
지위.
묘사
200
좋아요.
요청이 완료되었습니다.
201
창설
새 자원이 생성되었습니다.
400
엉터리 요구
잘못된 요청입니다.
401
무단
요청에 인증 영패가 포함되지 않거나 인증 영패가 만료되었습니다.
403
금지했어
클라이언트가 요청한 자원에 접근할 권한이 없습니다.
404
찾을 수 없음
요청한 자원을 찾을 수 없습니다.
405
방법이 허락하지 않는다
리소스에서 요청된 HTTP 메서드를 지원하지 않습니다.예를 들어, DELETE 메서드는 프록시 API와 함께 사용할 수 없습니다.
409
충돌하다
충돌로 인해 요청을 완료할 수 없습니다.예를 들어, 지정된 파일 또는 폴더 이름이 상위 위치에 이미 있는 경우 POST ContentStore 폴더 API를 완료할 수 없습니다.
500
내부 서버 오류
서버 측의 내부 오류로 인해 요청이 완료되지 않았습니다.
503
서비스를 사용할 수 없습니다.
서버를 사용할 수 없습니다.
이와 유사하게 API와 일부 매개변수를 호출할 수도 있습니다.우리의 예에서 특정 사용자의 글 - me:) 을 가져옵니다.
    parameters = {
            "username": "kedark"
        }
변수에 매개변수를 저장했으므로 API 호출에 동일한 매개변수를 사용하도록 하겠습니다.
def get_user_data(self, api, parameters):
        response = requests.get(f"{api}", params=parameters)
        if response.status_code == 200:
            print("sucessfully fetched the data with parameters provided")
            self.formatted_print(response.json())
        else:
            print(
                f"Hello person, there's a {response.status_code} error with your request")
받은 데이터는 다음과 같다. 즉, 내가 dev에 올린 댓글이다.

방금 API 요청 데이터를 받았습니다.
프로그램에서 데이터를 출력하기 위해서, 우리는 response.json() 방법을 사용하여 결과의 JSON 대상을 되돌려줍니다. (결과가 JSON 형식으로 작성된 경우, 그렇지 않으면 오류가 발생합니다.)
마찬가지로, 우리는 서로 다른 방법이 있는데, 그것들은 서로 다른 정보를 되돌려줄 것이다
속성/메서드
묘사
표관 코딩
명백한 인코딩을 되돌려줍니다
닫기()
서버와의 연결 해제
컨텐트
응답의 내용을 바이트 단위로 되돌려줍니다
과자 과자
서버에서 반환된 쿠키가 포함된 쿠키Jar 객체 반환
사라지다
전송 요청에서 응답 도착까지의 시간을 포함하는 시간 증가 대상을 되돌려줍니다.
부호화
r.text 디코딩 반환
타이틀
응답 헤더의 사전 반환
역사.
요청 내역(URL)이 포함된 응답 객체 목록을 반환합니다.
영원히
응답이 영구적으로 리디렉션된 URL이면 True로 돌아가고 그렇지 않으면 False로 돌아갑니다.
방향을 바꿨어요?
응답이 리디렉션되면 True를 반환하고 그렇지 않으면 False를 반환합니다.
iter 내용()
반복 응답
iter 선()
반복 응답 행
json()
결과의 JSON 대상을 되돌려줍니다. (결과가 JSON 형식으로 작성되면 오류가 발생합니다.)
링크
머리글 링크로 돌아가기
다음
리디렉션의 다음 요청을 위해 PreparedRequest 객체로 돌아가기
좋아요.
상태 코드가 400보다 작으면 True를 반환하고 그렇지 않으면 False를 반환합니다.
승급으로 상태 획득()
오류가 발생하면 이 메서드는 HTTPerror 객체로 돌아갑니다.
까닭
상태 코드에 대응하는 텍스트를 되돌려줍니다
청원
이 응답을 요청한 요청 대상을 되돌려줍니다
상태 코드
상태를 나타내는 숫자 (200 정상, 404 없음) 를 되돌려줍니다.
텍스트
유니버설 형식으로 응답한 내용을 되돌려줍니다
사이트 주소
응답의 URL을 반환합니다.
자료 출처: W3
응, 너는 하나하나 시험해 볼 수 있어.이것은 아주 좋은 연습이 될 것이다.현재 이 데이터를 사용하여 응용 프로그램에 데이터를 제공할 수 있습니다.만약 당신이 CSV를 사용하는 것을 더 좋아한다면 받은 JSON은 쉽게 CSV로 전환할 수 있다. Stack Overflowhow-can-i-convert-json-to-csv에 관한 이 게시물은 이를 실현하는 데 도움을 줄 수 있다.

비밀 번호


이 코드를 사용하여 첫 번째 API 요청을 보낼 수 있습니다.



여러분, 이 글은 여기까지입니다.좋아했으면 좋겠어.잊지 마라❤ 혹은📑 만약 당신이 이 글을 썼다면


오늘 하루 즐겁게 보내세요,

즐거운 코딩

좋은 웹페이지 즐겨찾기