You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Sorare GraphQL API获取球员当前价格/市值?

Sorare GraphQL API 获取球员当前价格/市值的正确查询方式

你之前尝试用currentPrice字段报错,是因为Sorare的GraphQL Schema中,Player类型并没有这个字段。球员的价格/市值相关数据需要通过marketData(市场统计数据)或者关联的Card(球员卡片)来获取。

以下是修改后的完整查询代码,包含了最近成交价、最低挂单价,以及最新卡片的价格信息:

import requests

# 包含价格相关字段的GraphQL查询
query = """
{
  player(slug: "nico-schlotterbeck") {
    firstName
    lastName
    position
    cardPositions
    id
    slug
    activeClub {
      name
    }
    age
    so5Scores(last: 5) {
      score
    }
    # 球员市场数据:最近成交价、最低挂单价
    marketData {
      lastSale {
        price {
          amount
          currency
        }
      }
      lowestAsk {
        price {
          amount
          currency
        }
      }
    }
    # 最新的1张卡片信息(含价格和稀有度)
    latestCards(last: 1) {
      nodes {
        price {
          amount
          currency
        }
        rarity
      }
    }
  }
}"""

api_url = "https://api.sorare.com/graphql"
response = requests.post(api_url, json={"query": query})

if response.status_code == 200:
    data = response.json()
    player_data = data["data"]["player"]
    
    print("Player Name:", player_data["firstName"], player_data["lastName"])
    print("Position:", player_data["position"])
    print("Active Club:", player_data["activeClub"]["name"])
    print("Age:", player_data["age"])
    
    print("\nLast 5 SO5 Scores:")
    for score_data in player_data["so5Scores"]:
        print("  - Score:", score_data["score"])
    
    # 输出市场价格数据
    print("\nMarket Data:")
    last_sale = player_data["marketData"]["lastSale"]
    if last_sale:
        print(f"  Last Sale Price: {last_sale['price']['amount']} {last_sale['price']['currency']}")
    else:
        print("  Last Sale Price: No recent sale")
    
    lowest_ask = player_data["marketData"]["lowestAsk"]
    if lowest_ask:
        print(f"  Lowest Ask Price: {lowest_ask['price']['amount']} {lowest_ask['price']['currency']}")
    else:
        print("  Lowest Ask Price: No active asks")
    
    # 输出最新卡片价格
    print("\nLatest Card Info:")
    latest_card = player_data["latestCards"]["nodes"][0] if player_data["latestCards"]["nodes"] else None
    if latest_card:
        print(f"  Price: {latest_card['price']['amount']} {latest_card['price']['currency']}")
        print(f"  Rarity: {latest_card['rarity']}")
    else:
        print("  No cards found")
else:
    print("Failed to retrieve data. Status code:", response.status_code)

字段说明:

  • marketData.lastSale:球员卡片最近一次成功交易的价格
  • marketData.lowestAsk:当前市场上该球员卡片的最低挂单价格
  • latestCards:获取该球员最新的卡片列表,这里取1张,包含卡片的价格和稀有度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:00:24