作為 Python 新手,我最近踏上了探索其功能的旅程,同時使用庫存 API。一路走來,我學會如何:
這是我的學習經驗和重點的細分!
1。設定 Python
Python 的虛擬環境 (venv) 讓您隔離專案的依賴項,確保您的套件不會與其他套件衝突。這對職業發展很有好處。
建立和啟動虛擬環境的步驟:建立虛擬環境
python -m venv venv
啟動它(Mac/Linux)
源 venv/bin/activate
venvScriptsactivate
這可以使您的項目的包與其他項目的包分開。
套件管理使用 Python 的套件安裝程式 pip,我學會了管理依賴項:
pip 安裝請求 python-dotenv
點凍結>;要求.txt
pip install -r requests.txt
2。環境變數
為了確保敏感資料的安全,我使用 .env 檔案作為 API 金鑰和憑證:
SCHWAB_CLIENT_ID=my_secret_id
SCHWAB_CLIENT_SECRET=my_secret_key
來自 dotenv 導入 load_dotenv
導入作業系統
load_dotenv() # 從.env
載入變量api_key = os.getenv('SCHWAB_CLIENT_ID')
重要:切勿將 .env 檔案提交至 Git。使用 .gitignore 檔案排除它們。
我使用請求庫與 API 互動:
導入請求
response = requests.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)」,
“開啟”:“浮動”,
“關閉”:“浮動”,
“高”:“浮動”,
“低”:“浮動”,
「音量」:「整數」
}
]
}
了解架構有兩個好處:
架構節省了我的時間,並使使用 API 時的偵錯變得更加容易。
5。使用 JSON
API 通常以 JSON 格式傳回資料。以下是我在 Python 中的處理方式:
導入json
with open('tokens.json', 'r') as f:
data = json.load(f)
with open('tokens.json', 'w') as f:
json.dump(data, f, indent=4)
6。錯誤處理
Python 的 try/ except 區塊幫助我優雅地管理錯誤:
嘗試:
回應 = requests.get(url)
data = response.json()
例外為 e:
print(f”錯誤: {str(e)}”)
不回傳
7。字串格式
Python 的 f-strings 和 .format() 方法讓字串格式化變得簡單:
print(f」庫存:{name},價格:${price:.2f}”)
print(“庫存:{},價格:${:.2f}”.format(名稱,價格))
8。字典操作
Python 中的字典對於處理巢狀 API 資料非常強大:
price = data.get('price', 'N/A')
股票=數據[符號]
quote = stock.get('quote', {})
price = quote.get('lastPrice', 'N/A')
9。調試技巧
Python 除錯簡單有效:
print(f”調試: {variable}”)
print(f”類型: {type(data)}”)
導入json
print(json.dumps(data, indent=2))
10。克服身分驗證挑戰
我面臨的最大障礙之一是身分驗證的工作。我被困了幾天,嘗試了不同的方法但沒有成功。最終,我決定尋求支持以了解它不起作用的原因。
事實證明,該問題與我使用的帳戶類型有關。為了成功進行身份驗證,我需要一個經紀帳戶和一個開發者帳戶。我最初假設只需要開發者帳戶,但 API 也需要來自活躍經紀帳戶的憑證。
這次經驗給了我一個重要的教訓:在需要時不要猶豫尋求幫助。透過放下自我並尋求指導,我對問題有了更深入的了解,並且比我繼續自己奮鬥更快地解決了問題
結論Python 對於初學者來說非常友善!這是我學到的:
後續步驟
最後的想法
最好的學習方式就是實踐。不要害怕嘗試和犯錯 — 每個挑戰都是成長的機會!
資料分析倉儲:https://github.com/Jesse-Chong/Schwab-Market-Analysis
原發表於Medium
以上是玩 Stock API:JavaScript/React 開發人員學習 Python的詳細內容。更多資訊請關注PHP中文網其他相關文章!