| 1234567891011121314151617181920212223242526272829303132333435 |
- import os
- os.environ["http_proxy"] = "http://127.0.0.1:7890"
- os.environ["https_proxy"] = "http://127.0.0.1:7890"
- # pip install yfinance
- import yfinance as yf
- from datetime import datetime
- def crypto_last(ticker: str) -> float:
- """
- 返回某个币对 USD 的最新收盘价(1m 线最近一次)
- ticker 示例: "BTC-USD", "ETH-USD", "SOL-USD"
- """
- data = yf.download(
- tickers=ticker,
- period="1d",
- interval="1m",
- auto_adjust=True,
- progress=False,
- threads=False
- )
- if data.empty:
- raise RuntimeError("yfinance 返回为空,可能 ticker 写错或网络问题")
- # 关键修正:把 Series 转成标量
- last_close = data["Close"].iloc[-1].item()
- return last_close
- if __name__ == "__main__":
- pairs = ["BTC-USD", "ETH-USD", "SOL-USD", "SUI-USD"]
- for p in pairs:
- try:
- price = crypto_last(p)
- except Exception as e:
- print(e)
- print(f"{datetime.now():%Y-%m-%d %H:%M:%S} {p}: {price}")
|