如何从GraphQL中获得100多个结果



我正在尝试使用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    idn    token0 {n      idn      symboln    }n    token1 {n      idn      symboln    }n    reserveUSDn    volumeUSDn  }n}n","variables":None}) 
#print(r.text)
json_data = json.loads(r.text)
print(len(json_data['data']['pairs']))

我认为您最多可以查询1000个结果。只需将"first"添加到查询中即可。如果有1000多个结果,那么首先查询#1,然后运行第二个结果,在那里可以使用skip函数跳过已经得到的1000个结果。

{
pairs(first: 1000, orderBy: reserveUSD, orderDirection: asc) {
id
token0 {
id
symbol
totalLiquidity
totalSupply
}
token1 {
id
symbol
totalLiquidity
totalSupply
}
reserveUSD
reserve0
reserve1
totalSupply
volumeUSD
}
}

最新更新