如何通过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
相关产品推荐
相关产品推荐

