手把手教你调用5个公共API获取数字货币市场数据(文章内附源码)

手把手,调用,公共,api,获取,数字,货币,市场,数据,文章,源码 · 浏览次数 : 4

小编点评

## Summary of the content: This content provides multiple methods to obtain historical cryptocurrency price data from various sources. **Here's a breakdown:** * **CoinGecko API:** CoinGecko API is a service that provides access to historical and real-time cryptocurrency data. It offers two ways to get data: using the API directly or through their CoinGecko APICoinGecko page. * **CryptoCompare API:** CryptoCompare API is another data provider offering historical and real-time cryptocurrency data. Similar to CoinGecko, they offer both API access and a dedicated page for historical data. * **Alpha Vantage:** Alpha Vantage provides both API and free data service. They offer free historical data on some cryptocurrencies, accessible through their query API. * **CoinCap API:** CoinCap API is a RESTful API and WebSocket API-based platform that provides access to various crypto data, including historical price data. * **Direct API Call:** This example demonstrates how to directly call trading platform APIs to retrieve K-line data for a specific cryptocurrency. **Key takeaways:** * Each data source might require specific setup and configuration depending on the API or service used. * Some data sources like CoinGecko and CryptoCompare offer both free and paid plans with varying data limits and performance. * CoinCap API provides access to both historical and real-time data, including K-line charts. * Direct API calls offer more flexibility and control over data retrieval but might require deeper technical knowledge. **Overall, this content provides a comprehensive overview of various methods to access historical cryptocurrency data, with each approach discussed in detail.**

正文

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。

获取数字货币的历史行情数据可以通过一些专门的数字货币数据API或者第三方数据服务来实现。以下是一些获取数字货币历史行情数据的方法:

1 CoinGecko API

CoinGecko是一个数字货币市场数据服务提供商,提供历史和实时的数字货币数据。它的API可以通过HTTP请求方式获取数字货币的历史行情数据。例如,以下代码可以获取比特币在2022年1月的价格数据:

import requests

url = 'https://api.coingecko.com/api/v3/coins/bitcoin/history'
params = {'date': '01-01-2022', 'localization': 'false'}
response = requests.get(url, params=params)

data = response.json()
print(data)

在这个示例中,我们使用requests库发送HTTP请求并获取CoinGecko API的响应。我们在API请求URL中设置了正确的参数,即货币对和时间间隔。我们使用params参数将API请求URL和参数传递给get()方法,并使用response.json()将响应转换为Python对象。我们使用Python中的for循环遍历数据,并使用列表索引访问价格数据和时间戳。然后,我们将时间戳转换为datetime对象,并打印时间戳和价格数据。

import requests
import datetime

url = "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart/range"
params = {
    "vs_currency": "usd",
    "from": "1392577232",
    "to": "1617288232"
}

response = requests.get(url, params=params)
data = response.json()

prices = data["prices"]
for price in prices:
    timestamp = datetime.datetime.fromtimestamp(price[0]/1000.0)
    price = price[1]
    print(timestamp, price)

  

2 CryptoCompare API

CryptoCompare是另一个数字货币市场数据服务提供商,也提供历史和实时的数字货币数据。它的API可以通过HTTP请求方式获取数字货币的历史行情数据。例如,以下代码可以获取比特币在2022年1月的价格数据:

import requests

url = 'https://min-api.cryptocompare.com/data/v2/histoday'
params = {'fsym': 'BTC', 'tsym': 'USD', 'limit': '31', 'toTs': '1641024000'}
response = requests.get(url, params=params)

data = response.json()
print(data)

  

3 Alpha Vantage

除了API外,还可以通过一些第三方数据服务提供商来获取数字货币的历史行情数据。例如,Alpha Vantage提供了一些免费的数字货币历史行情数据,可以通过HTTP请求方式获取。以下代码可以获取比特币在2022年1月的价格数据:

import requests

url = 'https://www.alphavantage.co/query'
params = {'function': 'DIGITAL_CURRENCY_DAILY', 'symbol': 'BTC', 'market': 'USD', 'apikey': 'your_api_key'}
response = requests.get(url, params=params)

data = response.json()
print(data)

  

注意:以上示例中的API和服务可能需要注册并获取API Key或者令牌,具体使用方式需要查看对应的API文档。此外,获取历史行情数据的请求需要提供对应的数字货币代码、市场类型、日期范围等参数,具体参数需要根据API文档来设置。

4 CoinCap API

CoinCap API是一个提供加密货币市场数据的API,可以获取多个加密货币的历史价格、实时价格、市值、交易量等信息。CoinCap API提供了RESTful API和WebSocket API两种访问方式。

CoinCap API提供了免费和付费两种访问方式。免费访问方式有一些限制,例如每分钟最多只能发出10个请求,每个请求最多返回2000个数据点等。如果需要更多数据和更高的访问速度,可以考虑使用付费访问方式。

  1. 导入必要的库和模块。

  2. 设置API请求参数,包括URL和请求参数。API的文档应该包含有关可用参数和其值的信息。在这个例子中,我们使用CoinCap API和CoinGecko API来获取比特币历史价格数据。我们在API请求URL中设置了正确的参数,即时间间隔、开始时间和结束时间。

  3. 发送API请求。使用Python中的requests库可以轻松发送HTTP请求并获取响应。发送请求的方式通常是调用requests库中的get()方法并将API请求URL和参数作为参数传递。对于一些需要认证的API,还需要将API密钥作为参数传递。

  4. 解析JSON响应。 API响应通常以JSON格式返回,因此需要使用json模块将响应转换为Python对象。使用Python中的json.loads()函数可以将JSON字符串转换为Python字典。

  5. 提取所需的数据。解析JSON响应后,我们可以从Python字典中提取所需的数据。提取数据的方法因API而异,通常需要检查API文档以查看可用的数据字段和其格式。

  6. 处理和可视化数据。一旦提取了所需的数据,我们可以使用Python中的其他库和模块进行进一步处理和可视化,例如使用Matplotlib库绘制图表或使用Pandas库进行数据分析。

在这个示例中,我们使用requests库发送HTTP请求并获取CoinCap API的响应。我们使用params参数将API请求URL和参数传递给get()方法,并使用response.json()将响应转换为Python对象。我们使用Python中的for循环遍历数据,并使用字典键访问价格数据和时间戳。然后,我们将时间戳转换为datetime对象,并打印时间戳和价格数据。

import requests

# 设置API请求参数
url = "https://api.coincap.io/v2/assets/bitcoin/history"
params = {
    "interval": "d1",
    "start": "1483228800000",  # 2017-01-01 的时间戳
    "end": "1649193600000"     # 2022-04-05 的时间戳
}

# 发送API请求
response = requests.get(url, params=params)

# 解析JSON响应
data = response.json()

# 提取价格数据
prices = data["data"]
for price in prices:
    time = price["time"]  # 时间戳
    price_usd = price["priceUsd"]  # 价格(美元)
    print(f"{time}: {price_usd}")

  

5 直接调用交易所API

此处我们调用的是某安的rest API,获取btc的K线数据,并对数据框做一些基本处理后,用K线图形的形式将其可视化出来。

import requests
import pandas as pd
import mplfinance as mpf

# 获取比特币K线数据
url = 'https://api.binance.com/api/v3/klines'
params = {
    'symbol': 'BTCUSDT',
    'interval': '1d',
    'limit': 1000
}
res = requests.get(url, params=params)
data = res.json()
df = pd.DataFrame(data, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
df.set_index('timestamp', inplace=True)

df = df.apply(pd.to_numeric, errors='ignore')

# 画K线图
mpf.plot(df, type='candle', volume=True, style='binance')

程序运行后的K线图可视化结果

以上是用5种不同方式调用API获取数字货币公开数据的方法及详细源码,你Get到了吗?

 

 

 

与手把手教你调用5个公共API获取数字货币市场数据(文章内附源码)相似的内容:

手把手教你调用5个公共API获取数字货币市场数据(文章内附源码)

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 获取数字货币的历史行情数据可以通过一些专门的数字货币数据API或者第三方数据服务来实现。以下是一些获取数字货币历史行情数据的方法: 1 CoinGecko API CoinGecko是一个数字货币市场数据

微服务实践k8s&dapr开发部署实验(1)服务调用

前置条件 安装docker与dapr: 手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序 安装k8s dapr 自托管模式运行 新建一个webapi无权限项目 launchSettings.json中applicationUrl端口改成5001,如下: "applicationUr

手把手教你在昇腾平台上搭建PyTorch训练环境

摘要:在昇腾平台上运行PyTorch业务时,需要搭建异构计算架构CANN软件开发环境,并安装PyTorch 框架,从而实现训练脚本的迁移、开发和调试。 本文分享自华为云社区《手把手教你在昇腾平台上搭建PyTorch训练环境》,作者:昇腾CANN。 PyTorch是业界流行的深度学习框架,用于开发深度

手把手带你通过API创建一个loT边缘应用

摘要:使用API Arts&API Explorer调用IoT边缘服务接口创建应用,了解边缘计算在物联网行业的应用。 本文分享自华为云社区《使用API Arts&API Explorer调用IoT边缘服务接口创建应用》,作者:华为IoT云服务。 开始体验前需注册华为云账号并完成实名认证,实验过程中请

AI实战 | 手把手带你打造校园生活助手

在文章中,我展示了手把手的教程和小雨校园生活助手的功能。我强调了插件开发的重要性,以及数据库和变量的使用。工作流的使用也得到了详细解释,包括节假日信息整合和课程查询。最后,我分享了我的开场白生成方法,强调了前期调试的重要性。通过这篇文章,希望大家能够更深入地了解扣子助手的功能和实现方式。我将继续努力...

Go-Zero从0到1实现微服务项目开发(二)

继续更新GoZero微服务实战系列文章:上一篇被GoZero作者万总点赞了,本文将继续使用 Go-zero 提供的工具和组件,从零开始逐步构建一个基本的微服务项目。手把手带你完成:项目初始化+需求分析+表结构设计+api+rpc+goctl+apifox调试+细节处理。带你实现一个完整微服务的开发。

手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程

手把手教你解决spring boot导入swagger2版本冲突问题 本文仅为个人理解,欢迎大家批评指错 首先Spring Boot 3 和 Swagger 2 不兼容。在 Spring Boot 3 中,应该使用 Springdoc 或其他与 Spring Boot 3 兼容的 API 文档工具来

手把手教你搭建Docker私有仓库Harbor

1、什么是Docker私有仓库 Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部署在本地云环境中,用于组织内部

[转帖]手把手教你安装openGauss 3.1.0

手把手教你安装openGauss 3.1.0 目录 前言 一、安装包的下载 1、centos 7.6的下载 2、openEuler 20.03LTS的下载 3、openGauss安装包的下载 二、安装环境的准备 1、硬件环境要求 2、软件环境要求 3、软件依赖要求 4、关闭操作系统防火墙 6、设置操

手把手教你如何在报表中查询数据

每周一个报表小技巧:如何在报表中引入数据筛选功能 >摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # 前言篇 在当今信息爆炸的时代,面对海量的