You need to enable JavaScript to run this app. 如何处理Cryptowatch API返回JSON生成Kraken现货USD对的Pandas DataFrame
优惠活动
大模型
产品
解决方案
定价
更多

如何处理Cryptowatch API返回JSON生成Kraken现货USD对的Pandas DataFrame

问题原因说明
  • 列数异常:接口返回的JSON结构中result字段为键值对格式,键的命名规则是交易所标识:交易对,值为对应交易对的行情数据。直接对完整响应做json_normalize会把所有嵌套字段拍平为列,因此得到1行多列的错误结构。
  • 单引号差异:JSON标准使用双引号,Python将JSON解析为字典对象后,打印时默认用单引号显示字符串,属于Python的字符串展示规则,不会影响实际数据使用,无需额外处理。
符合过滤要求的实现代码
import requests
import pandas as pd

# 请求接口
resp = requests.get("https://api.cryptowat.ch/markets/summaries")
resp.raise_for_status() # 主动抛出请求异常
all_market_data = resp.json()["result"]

# 处理并过滤数据
processed_list = []
for market_key, market_info in all_market_data.items():
    # 拆分交易所和交易对名称
    exchange, symbol = market_key.split(":", 1)
    # 过滤条件1:仅保留kraken现货,排除期货品类
    if exchange != "kraken":
        continue
    # 过滤条件2:仅保留USD配对的交易对
    if not symbol.endswith("usd"):
        continue
    # 合并基础标识和行情数据
    row = {"exchange": exchange, "symbol": symbol}
    row.update(market_info)
    processed_list.append(row)

# 生成规整DataFrame
df = pd.json_normalize(processed_list)
print(df.head())

生成的DataFrame每行对应一个符合要求的Kraken USD交易对,所有行情指标自动展开为对应列,需要导出到Excel的话可追加代码df.to_excel("kraken_usd_pairs.xlsx", index=False)即可。


内容的提问来源于stack exchange,提问作者VJKR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 16:12:02