ホームページ >バックエンド開発 >Python チュートリアル >ストック API で遊ぶ: JavaScript/React 開発者が Python を学ぶ

ストック API で遊ぶ: JavaScript/React 開発者が Python を学ぶ

DDD
DDDオリジナル
2024-12-19 21:05:51898ブラウズ

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 を操作しながらその機能を探索する旅に最近乗り出しました。その過程で、次の方法を学びました:

  • 仮想環境をセットアップする
  • パッケージを管理する
  • 機密データには環境変数を使用する
  • HTTP リクエストを作成し、JSON を処理します
  • エラー処理と文字列フォーマットを実装する
  • Python の辞書を操作する
  • API によって提供されるスキーマを理解する

これが私の学習経験と重要なポイントの内訳です!

1. Python のセットアップ

Python の 仮想環境 (venv) を使用すると、プロジェクトの依存関係を分離して、パッケージが他のパッケージと競合しないようにすることができます。専門能力の開発に最適です。

仮想環境を作成してアクティブ化する手順:仮想環境を作成する

python -m venv venv

アクティブ化します (Mac/Linux)

ソース venv/bin/activate

アクティブ化する (Windows)

venvScriptsactivate

これにより、プロジェクトのパッケージが他のパッケージから分離されます。

パッケージ管理Python のパッケージ インストーラーである pip を使用して、依存関係を管理する方法を学びました。

パッケージをインストールする

pip インストール リクエスト python-dotenv

要件を保存する

ピップフリーズ>要件.txt

要件からインストールする

pip install -r required.txt

2.環境変数

機密データを安全に保つために、API キーと認証情報に .env ファイルを使用しました。

 .env ファイル

SCHWAB_CLIENT_ID=my_secret_id

SCHWAB_CLIENT_SECRET=my_secret_key

Python コード

from dotenv import load_dotenv

OS をインポート

load_dotenv() # .env

から変数をロードします

api_key = os.getenv(‘SCHWAB_CLIENT_ID’)

重要: .env ファイルを Git にコミットしないでください。 .gitignore ファイルを使用してそれらを除外します。

  • 3. HTTP リクエストを行う

リクエスト ライブラリを使用して API を操作しました。

インポートリクエスト

GET リクエストを行う

response =requests.get(url, headers=headers, params=params)

リクエストが成功したかどうかを確認する

if response.status_code == 200:

data = response.json() # レスポンスを JSON に変換

4.スキーマを理解する

API エンドポイントと対話する前に、そのスキーマを調べました。 API スキーマは、次のことを伝える青写真のようなものです。

  • リクエスト スキーマ: 必須フィールド、データ型、制約など、送信する必要があるデータ。
  • 応答スキーマ: 構造、データ型、例など、受信が期待できるデータ。

たとえば、API エンドポイントが株価を取得する場合、スキーマは次のようになります。

リクエストスキーマ:

{

「シンボル」: 「文字列」、

「日付」: 「文字列 (YYYY-MM-DD)」、

「間隔」: 「文字列 (例: '1d'、'1m')」

}

応答スキーマ:

{

「シンボル」: 「文字列」、

「価格」: [

{

「日付」: 「文字列 (YYYY-MM-DD)」、

「オープン」: 「フロート」、

「閉じる」: 「フロート」、

「ハイ」: 「フロート」、

「ロー」: 「フロート」、

「ボリューム」: 「整数」

}

]

}

スキーマを理解すると、次の 2 つの点で役立ちます。

  1. 準備: リクエストを正しく構造化し、レスポンスの処理方法を理解できるようにします。
  2. エラー防止: スキーマに準拠することで、無効なリクエストや誤って解釈されたレスポンスを最小限に抑えます。

スキーマのおかげで時間を節約でき、API を使用する際のデバッグがはるかに簡単になりました。

5. JSON

の操作

API は多くの場合、JSON 形式でデータを返します。 Python でこれを処理した方法は次のとおりです。

json をインポート

ファイルから JSON を読み取る

with open('tokens.json', 'r') as f:

データ = json.load(f)

JSON をファイルに書き込む

with open('tokens.json', 'w') as f:

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

6.エラー処理

Python の try/excel ブロッ​​クは、エラーを適切に管理するのに役立ちました。

試してください:

レスポンス =requests.get(url)

データ = response.json()

次の例外を除く:

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”Type: {type(data)}”)

きれいな印刷の辞書

json をインポート

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

10.認証の課題を克服する

私が直面した最大のハードルの 1 つは、認証を機能させることでした。私は数日間行き詰まり、さまざまなアプローチを試みましたが、成功しませんでした。最終的に、なぜ機能しないのかを理解するためにサポートに連絡することにしました。

問題は私が使用していたアカウントの種類に関連していることが判明しました。認証を成功させるには、仲介アカウント開発者アカウントの両方が必要でした。私は当初、開発者アカウントのみが必要であると考えていましたが、API にはアクティブな証券会社アカウントからの認証情報も必要でした。

この経験は私に重要な教訓を与えてくれました。必要なときはためらわずに助けを求めてください。自分のエゴを脇に置いて指導を求めることで、問題をより深く理解し、一人で悩み続けた場合よりもずっと早く解決することができました

結論Python は信じられないほど初心者に優しいです。私が学んだことは次のとおりです:

  • 仮想環境はプロジェクトを整理し続けます。
  • 環境変数は機密データを保護します。
  • リクエストなどのライブラリにより API 呼び出しが簡素化されます。
  • 適切なエラー処理が重要です。
  • 明確な関数名とコメントにより読みやすさが向上します。

次のステップ

  • API 認証について詳しく説明します。
  • データの視覚化を探索します。
  • より堅牢なエラー処理を追加します。
  • 自動テストを実装します。

最終的な感想
学ぶための最良の方法は実践することです。実験して間違いを犯すことを恐れないでください — それぞれの挑戦は成長の機会です!

データ分析リポジトリ: https://github.com/Jesse-Chong/Schwab-Market-Analysis

元々は Medium で公開されました

以上がストック API で遊ぶ: JavaScript/React 開発者が Python を学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。