[英]Historical data from CoinMarketCap API with Python
我正在嘗試將 Coinmarketcap API 與 python 一起使用,並且我有以下代碼:
import requests
import json
import pandas as pd
api_url= 'https://api.coinmarketcap.com/data-api/v3/cryptocurrency/historical?id=1&convertId=2781&interval=hourly&timeStart=1632441600&timeEnd=1637712000'
r = requests.get(api_url)
data = []
for item in r.json()['data']['quotes']:
close = item['quote']['close']
date=item['quote']['timestamp']
data.append([date,close])
cols = ["date","close"]
df = pd.DataFrame(data, columns= cols)
df['date'] = pd.to_datetime(df['date'])
此代碼工作正常,但我無法獲取其他加密貨幣的數據。 我可以在請求中使用符號或 map 符號來標識嗎?
我找到了我的問題的解決方案:
def extraxt_coin_id(coin_symbol,coin_name):
api_url= f'https://web-api.coinmarketcap.com/v1/cryptocurrency/map?symbol={coin_symbol}'
r = requests.get(api_url)
data = []
for item in r.json()['data']:
if item['name'].lower()==coin_name.lower():
return item['id']
break
所以我找到了硬幣的 ID,然后我替換了 url 中的 id:
def extract_history(coin_symbol,coin_name,from_date,to_date,interval):
coin_id=extraxt_coin_id(coin_symbol,coin_name)
from_date=int(datetime.datetime.strptime(from_date, "%Y-%m-%d").timestamp())
to_date=int(datetime.datetime.strptime(to_date, "%Y-%m-%d").timestamp())
api_url= f'https://api.coinmarketcap.com/data-api/v3/cryptocurrency/historical?id={coin_id}&convertId=2781&interval={interval}&timeStart={from_date}&timeEnd={to_date}'
r = requests.get(api_url)
data = []
for item in r.json()['data']['quotes']:
close = item['quote']['close']
date=item['quote']['timestamp']
data.append([date,close])
cols = ["date","close"]
hist_df = pd.DataFrame(data, columns= cols)
hist_df['date'] = pd.to_datetime(hist_df['date'])
hist_df["date"] = hist_df["date"].dt.floor('d')
return hist_df
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.