В настоящее время я работаю над получением данных о клиентах из cdon, это платформа электронной коммерции.У них есть документация по API здесь:
CDON Api Docu
Сначала позвольте мне показать вам мой код:
myToken = '<token here>'
myUrl = 'https://admin.marketplace.cdon.com/api/reports/d8578ef8-723d-46cb-bb08-af8c9b5cca4c'
head = {'Authorization': 'token {}'.format(myToken),
'Status':'Online',
'format':'json'}
filters = '?filter={"Status":["Online"],"format": ["json"] }}'
response = requests.get(myUrl + filters, headers=head)
report = response.json()
print(report.products)
Это возвращает толькопараметры.как например в этом JSON: CDON Github
Статус имеет значение Онлайн это online
это группа элементов, которые я толькохочу получить.
Я пытаюсь получить ответ вроде этого:
{
"Products": [
{
"SKU": "322352",
"Title": "Fabric Cover",
"GTIN": "532523626",
"ManufacturerArticleNumber": "",
"StatusCDON": "Online",
"ExposeStatusCDON": "Buyable",
"InStock": 0,
"InStockCDON": 0,
"CurrentPriceSE": null,
"OrdinaryPriceSE": null,
"CurrentPriceCDONSE": 299.0000,
"OrdinaryPriceCDONSE": null,
"CurrentPriceDK": null,
"OrdinaryPriceDK": null,
"CurrentPriceCDONDK": null,
"OrdinaryPriceCDONDK": null,
"CurrentPriceNO": null,
"OrdinaryPriceNO": null,
"CurrentPriceCDONNO": null,
"OrdinaryPriceCDONNO": null,
"CurrentPriceFI": null,
"OrdinaryPriceFI": null,
"CurrentPriceCDONFI": null,
"OrdinaryPriceCDONFI": null
},
Что означает полный список элементов, которые Online
Как мне это поставить ... среди всех API, которые я пробовал, это очень сбивает с толку, это даже RestFul?Если я смогу получить Python-эквивалент этого примера кода на C #:
public string Post(Guid repordId, string path)
{
var filter = new JavaScriptSerializer().Serialize(new
{
States = new[] { "0" } // Pending state
});
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair("ReportId", repordId.ToString()),
new KeyValuePair("format", "json"),
new KeyValuePair("filter", filter)
});
var httpClient = new HttpClient() { BaseAddress = new Uri("https://admin.marketplace.cdon.com/") };
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("api", ApiKey);
var response = httpClient.PostAsync(path, content).Result;
response.EnsureSuccessStatusCode();
return response.Content.ReadAsStringAsync().Result;
}
Возможно, я смогу понять, как работает этот API, полученный ответ был взят вручную из их функции отчета в формате JSON.
Изображение
Я предпринял много попыток и на этом коде (своем коде) я остановился, так как в течение 4 часов я сдался и спросил.Поверьте, я искал столько ссылок, сколько мог.Это действительно сбивает с толку.
Как получить ответ, который я хочу?Фильтрация через URL?или через заголовок?это даже успокаивает?Помощь T_T