Python请求中的动态负载

Python请求中的动态负载,python,request,payload,Python,Request,Payload,我在Python中有一个请求,希望使其成为动态的。这是关于有效负载查询的,如何在有效负载中添加变量? 我尝试过使用.format,但不起作用 url = "https://graphql.bitquery.io" payload = "{\"query\":\"{\\r\\n ethereum(network: bsc) {\\r\\n dexTrades(\\r\\n options: {limit: 100, de

我在Python中有一个请求,希望使其成为动态的。这是关于有效负载查询的,如何在有效负载中添加变量? 我尝试过使用.format,但不起作用

url = "https://graphql.bitquery.io"
payload = "{\"query\":\"{\\r\\n  ethereum(network: bsc) {\\r\\n    dexTrades(\\r\\n      options: {limit: 100, desc: \\\"tradeAmount\\\"}\\r\\n      date: {after: \\\"2021-04-30\\\"}\\r\\n      buyCurrency: {in: \\\"0xe7a39e210f067caad7992e6866beceb95b4394f7\\\"}\\r\\n    ) {\\r\\n      transaction {\\r\\n        hash\\r\\n      }\\r\\n      date {\\r\\n        date\\r\\n      }\\r\\n      buyAmount\\r\\n      buyAmountInUsd: buyAmount(in: USD)\\r\\n      buyCurrency {\\r\\n        symbol\\r\\n        address\\r\\n        tokenId\\r\\n        tokenType\\r\\n        decimals\\r\\n        name\\r\\n      }\\r\\n      sellAmount\\r\\n      sellCurrency {\\r\\n        symbol\\r\\n        address\\r\\n      }\\r\\n      sellAmountInUsd: sellAmount(in: USD)\\r\\n      tradeAmount(in: USD)\\r\\n      smartContract {\\r\\n        address {\\r\\n          address\\r\\n          annotation\\r\\n        }\\r\\n        protocolType\\r\\n      }\\r\\n    }\\r\\n  }\\r\\n}\\r\\n\",\"variables\":{}}"
headers = {
    'X-API-KEY': '',
    'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)

我认为如果我理解正确,GraphQLAPI将采用json格式的字符串,您需要修改json的查询部分。如果您将这两个变量分开,并为您希望在有效负载中更改的所需变量提供
%s
格式,那么它应该可以工作

我使用了
date
desc
作为示例,但是您希望更改此方法的任何其他变量也可以使用

导入json
导入请求
日期='2021-04-30'
desc='tradeAmount'
query=”“”
{
以太坊(网络:bsc){
德克塞德斯(
选项:{limit:100,desc:“%s”}
日期:{在:“%s”之后}
购买货币:{in:“0xE7A39E210F067CAAD7992E6866BECB95B4394F7”}
) {
交易{
搞砸
}
日期{
日期
}
买价
购买金额单位:购买金额(单位:美元)
购买货币{
符号
地址
令牌ID
令牌类型
小数
名称
}
销售量
卖出货币{
符号
地址
}
销售金额单位:销售金额(单位:美元)
交易金额(单位:美元)
智能合约{
地址{
地址
注释
}
原型
}
}
}
}
“%”(说明,日期)
d={'query':查询,'variables':{}
有效负载=json.dumps(d)
url=”https://graphql.bitquery.io"
标题={
“X-API-KEY”:“,
“内容类型”:“应用程序/json”
}
response=requests.request(“POST”,url,headers=headers,data=payload)