> 백엔드 개발 > 파이썬 튜토리얼 > Stock API로 놀기: JavaScript/React 개발자가 Python을 배웁니다.

Stock API로 놀기: JavaScript/React 개발자가 Python을 배웁니다.

DDD
풀어 주다: 2024-12-19 21:05:51
원래의
897명이 탐색했습니다.

Playing with a Stock API: A JavaScript/React Developer Learns Python
Playing with a Stock API: A JavaScript/React Developer Learns Python
Playing with a Stock API: A JavaScript/React Developer Learns Python

Python을 처음 접하는 사람으로서 저는 최근 스톡 API로 작업하면서 Python의 기능을 탐색하는 여정을 시작했습니다. 그 과정에서 다음 방법을 배웠습니다.

  • 가상 환경 설정
  • 패키지 관리
  • 민감한 데이터에는 환경 변수 사용
  • HTTP 요청 수행 및 JSON 처리
  • 오류 처리 및 문자열 형식 구현
  • Python 사전 작업
  • API에서 제공하는 스키마 이해

여기 내 학습 경험과 주요 내용이 요약되어 있습니다!

1. Python 설정

Python의 가상 환경(venv)을 사용하면 프로젝트의 종속성을 격리하여 패키지가 다른 패키지와 충돌하지 않도록 할 수 있습니다. 전문성 개발에 좋습니다.

가상 환경 생성 및 활성화 단계:가상 환경 생성

python -m venv venv

활성화(Mac/Linux)

소스 venv/bin/activate

활성화(Windows)

venvScripts활성화

이렇게 하면 프로젝트 패키지가 다른 패키지와 별도로 유지됩니다.

패키지 관리Python의 패키지 설치 프로그램인 pip를 사용하여 종속성을 관리하는 방법을 배웠습니다.

패키지 설치

pip 설치가 python-dotenv를 요청합니다

요구사항 저장

핍 동결 > 요구사항.txt

요구 사항에서 설치

pip install -r 요구사항.txt

2. 환경변수

민감한 데이터를 안전하게 유지하기 위해 API 키와 자격 증명에 .env 파일을 사용했습니다.

 .env 파일

SCHWAB_CLIENT_ID=my_secret_id

SCHWAB_CLIENT_SECRET=내_비밀_키

Python 코드

from dotenv import load_dotenv

OS 가져오기

load_dotenv() # .env에서 변수 로드

api_key = os.getenv('SCHWAB_CLIENT_ID')

중요: .env 파일을 Git에 커밋하지 마세요. 제외하려면 .gitignore 파일을 사용하세요.

  • 3. HTTP 요청하기

요청 라이브러리를 사용하여 API와 상호작용했습니다.

가져오기 요청

GET 요청하기

응답 = 요청.get(url, headers=headers, params=params)

요청이 성공했는지 확인

response.status_code == 200인 경우:

data = response.json() # 응답을 JSON으로 변환

4. 스키마 이해

API 엔드포인트와 상호작용하기 전에 해당 스키마를 살펴봤습니다. API 스키마는 다음을 알려주는 청사진과 같습니다.

  • 요청 스키마: 필수 필드, 데이터 유형 및 제약 조건을 포함하여 보내야 하는 데이터입니다.
  • 응답 스키마: 구조, 데이터 유형, 예시 등 수신을 기대할 수 있는 데이터

예를 들어 API 엔드포인트가 주가를 검색하는 경우 스키마는 다음과 같을 수 있습니다.

스키마 요청:

{

“기호”: “문자열”,

“날짜”: “문자열(YYYY-MM-DD)”,

'간격': '문자열(예: '1d', '1m')'

}

응답 스키마:

{

“기호”: “문자열”,

“가격”: [

{

“날짜”: “문자열(YYYY-MM-DD)”,

“열다”: “부동”,

“닫기”: “부동”,

“높음”: “부동”,

“낮음”: “부동”,

“볼륨”: “정수”

}

]

}

스키마를 아는 것은 두 가지 면에서 도움이 됩니다.

  1. 준비: 요청을 올바르게 구성하고 응답을 처리하는 방법을 알 수 있도록 해줍니다.
  2. 오류 예방: 스키마를 준수하면 잘못된 요청이나 잘못 해석된 응답을 최소화할 수 있습니다.

스키마를 사용하면 API로 작업하는 동안 시간이 절약되고 디버깅이 훨씬 쉬워졌습니다.

5. JSON 작업

API는 종종 JSON 형식으로 데이터를 반환합니다. Python에서 이를 처리하는 방법은 다음과 같습니다.

json 가져오기

파일에서 JSON 읽기

open('tokens.json', 'r')을 f:로 사용

데이터 = json.load(f)

파일에 JSON 쓰기

open('tokens.json', 'w')을 f:로 사용

json.dump(data, f, indent=4)

6. 오류 처리

Python의 try/제외 블록은 오류를 적절하게 관리하는 데 도움이 되었습니다.

해 보세요:

응답 = 요청.get(url)

데이터 = response.json()

e:와 같은 예외는 제외

print(f”오류: {str(e)}”)

반품 없음

7. 문자열 형식

Python의 f-strings 및 .format() 메서드를 사용하면 문자열 형식을 간단하게 지정할 수 있습니다.

F-문자열 사용

print(f”재고: {name}, 가격: ${price:.2f}”)

.format() 사용

print(“재고: {}, 가격: ${:.2f}”.format(이름, 가격))

8. 사전작업

Python의 사전은 중첩된 API 데이터를 처리하는 데 강력합니다.

기본값으로 가치 얻기

가격 = data.get('가격', 'N/A')

중첩된 사전에 액세스

주식 = 데이터[기호]

quote = stock.get('quote', {})

가격 = quote.get('lastPrice', 'N/A')

9. 디버깅 팁

Python에서의 디버깅은 간단하고 효과적입니다.

인쇄 디버깅

print(f”디버그: {변수}”)

변수 유형 확인

print(f”유형: {유형(데이터)}”)

예쁜 인쇄 사전

json 가져오기

print(json.dumps(data, indent=2))

10. 인증 문제 극복

제가 직면한 가장 큰 장애물 중 하나는 인증을 받는 것이었습니다. 나는 며칠 동안 갇혀서 다른 접근 방식을 시도했지만 성공하지 못했습니다. 결국 저는 왜 작동하지 않는지 이해하기 위해 지원을 요청하기로 결정했습니다.

이 문제는 내가 사용 중인 계정 유형과 관련된 것으로 밝혀졌습니다. 성공적으로 인증하려면 중개 계정개발자 계정이 모두 필요했습니다. 처음에는 개발자 계정만 필요한 줄 알았는데 API에는 활성 중개 계정의 자격 증명도 필요했습니다.

이 경험은 저에게 중요한 교훈을 주었습니다. 필요할 때 주저하지 말고 도움을 요청하세요. 자존심을 내려놓고 조언을 구하면서 문제를 더 깊이 이해하게 되었고 혼자서 계속 어려움을 겪을 때보다 훨씬 빨리 문제를 해결했습니다

결론Python은 놀라울 정도로 초보자에게 친숙합니다! 제가 배운 내용은 다음과 같습니다.

  • 가상 환경을 통해 프로젝트를 체계적으로 정리할 수 있습니다.
  • 환경 변수는 민감한 데이터를 보호합니다.
  • 요청과 같은 라이브러리는 API 호출을 단순화합니다.
  • 올바른 오류 처리가 중요합니다.
  • 함수 이름과 설명을 명확하게 하면 가독성이 높아집니다.

다음 단계

  • API 인증에 대해 자세히 알아보세요.
  • 데이터 시각화를 살펴보세요.
  • 보다 강력한 오류 처리 기능을 추가하세요.
  • 자동화된 테스트를 구현하세요.

최종 생각
배우는 가장 좋은 방법은 실천하는 것입니다. 실험과 실수를 두려워하지 마세요 — 모든 도전은 성장의 기회입니다!

데이터 분석 저장소: https://github.com/Jesse-Chong/Schwab-Market-Analytic

원래 Medium에 게시됨

위 내용은 Stock API로 놀기: JavaScript/React 개발자가 Python을 배웁니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿