[英]graphQL in python post request to get data
Hi I was trying to figure out how to correctly pass a graphQL query to a python post request. 嗨,我试图弄清楚如何正确地将graphQL查询传递给python post请求。
The sample graphQL is in curl like this on commission junction API website: 在Commission junction API网站上,示例graphQL如下所示:
curl -H "Authorization: Bearer <your-personal-access-token> -XPOST
https://commissions.api.cj.com/query -d '{ publisherCommissions(forPublishers: ["999"], sincePostingDate:"2018-08-08T00:00:00Z",beforePostingDate:"2018-08-09T00:00:00Z"){count payloadComplete records {actionTrackerName websiteName advertiserName postingDate pubCommissionAmountUsd items { quantity perItemSaleAmountPubCurrency totalCommissionPubCurrency } } } }'
I try to use python to simulate the request: 我尝试使用python来模拟请求:
import requests
headers = {"Authorization": "Bear token"}
def run_query(query):
request = requests.post('https://commissions.api.cj.com/query', json={'query': query}, headers=headers)
if request.status_code == 200:
return request.json()
else:
raise Exception("Query failed to run by returning code of {}. {}".format(request.status_code, query))
query="""
{
publisherCommissions(forPublishers: ["999"]) {
records
}
}
"""
result = run_query(query)
But always get response 400. I don't know if python can take the graphQL format at all? 但总是得到响应400.我不知道python是否可以采用graphQL格式? how do i format so the post request can recognize it.
我如何格式化,以便发布请求可以识别它。 Thanks!
谢谢!
This worked 这很有效
query = """
{
advertiserCommissions(forAdvertisers: "inputID",sinceEventDate: "%s",
beforeEventDate: "%s") {
records {
commissionId
orderDiscountPubCurrency
aid
orderId
postingDate
lockingDate
actionStatus
advertiserId
advertiserName
saleAmountUsd
originalActionId
pubCommissionAmountUsd
cjFeeUsd
actionTrackerId
actionType
eventDate
original
actionTrackerName
}
limit
maxCommissionId
payloadComplete
count
}
}
""" % (beginDate, endDate)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.