【发布时间】:2021-08-23 12:33:16
【问题描述】:
我正在尝试使用 GraphQL 为 Uniswap 2.0 上的每个令牌对接收令牌对数据。当我运行我的代码时,我只得到 100 个结果,但我需要检索 1800 多个结果。我已经更改了几次查询,但无论我如何更改它,100 对的数据似乎总是有上限。如何获取所有对的数据?
import requests
query = """{
pairs(orderBy: reserveUSD, orderDirection: asc) {
id
token0 {
id
symbol
totalLiquidity
totalSupply
}
token1 {
id
symbol
totalLiquidity
totalSupply
}
reserveUSD
reserve0
reserve1
totalSupply
volumeUSD
}
}"""
url = 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2'
r = requests.post(url, json = {"query": query})#"{\n pairs(first: 10, where: {reserveUSD_gt: \"1000000\", volumeUSD_gt: \"50000\"}, orderBy: reserveUSD, orderDirection: desc) {\n id\n token0 {\n id\n symbol\n }\n token1 {\n id\n symbol\n }\n reserveUSD\n volumeUSD\n }\n}\n","variables":None})
#print(r.text)
json_data = json.loads(r.text)
print(len(json_data['data']['pairs']))
【问题讨论】:
-
这不是一个普通的 GraphQL 问题。由您查询的 API 来公开请求特定数量结果的方式,并且 API 可能总是有一个硬最大值,您需要发出多个请求。你有关于这个 API 架构的文档链接吗?
-
这是documention的链接,这是sandbox的链接
标签: python json python-requests graphql