demo.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import os
  2. os.environ["http_proxy"] = "http://127.0.0.1:7890"
  3. os.environ["https_proxy"] = "http://127.0.0.1:7890"
  4. # pip install yfinance
  5. import yfinance as yf
  6. from datetime import datetime
  7. def crypto_last(ticker: str) -> float:
  8. """
  9. 返回某个币对 USD 的最新收盘价(1m 线最近一次)
  10. ticker 示例: "BTC-USD", "ETH-USD", "SOL-USD"
  11. """
  12. data = yf.download(
  13. tickers=ticker,
  14. period="1d",
  15. interval="1m",
  16. auto_adjust=True,
  17. progress=False,
  18. threads=False
  19. )
  20. if data.empty:
  21. raise RuntimeError("yfinance 返回为空,可能 ticker 写错或网络问题")
  22. # 关键修正:把 Series 转成标量
  23. last_close = data["Close"].iloc[-1].item()
  24. return last_close
  25. if __name__ == "__main__":
  26. pairs = ["BTC-USD", "ETH-USD", "SOL-USD", "SUI-USD"]
  27. for p in pairs:
  28. try:
  29. price = crypto_last(p)
  30. except Exception as e:
  31. print(e)
  32. print(f"{datetime.now():%Y-%m-%d %H:%M:%S} {p}: {price}")