Невозможно выяснить, как преобразовать приведенный ниже запрос curl как запрос Python - PullRequest
0 голосов
/ 11 апреля 2020
curl --location --request POST 'https://search-stagapi.example.com/search-new/search/v1/search/lambda' \
--header 'Content-Type: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "sort":null,
  "per_page":12,
  "scroll_id":null,
  "session_id":null,
  "q":"diapers",
  "shingle_active":false,
  "location":"110005",
  "types":["allopathy","brand","sku","udp"],
  "country":"",
  "is_query_suggestion_applicable":false,
  "debug":false,
  "filters":null,
  "facets":[{"field":"sku.brand.raw","name":"brand","type":"facet","range":null},{"field":"product_form","name":"product_form","type":"facet","range":null},{"field":"rx_required","name":"rx_required","type":"facet","range":null},{"field":"uses","name":"uses","type":"facet","range":null},{"field":"age","name":"age","type":"facet","range":null},{"field":"recommended","name":"recommended","type":"facet","range":null}],
  "source_fields":["count"],
  "query_filters":null,
  "is_all":true
}'

Я попытался использовать uncurl, но столкнулся с проблемой с параметром data-raw, так как не смог преобразовать весь этот запрос в одну строку. Использование uncurl показывает неверный синтаксис

1 Ответ

1 голос
/ 11 апреля 2020

Вы можете сделать что-то вроде этого:

import requests
import json
headers = headers = {'content-type': 'application/json'}
payload = {json.dumps({
  "sort":null,
  "per_page":12,
  "scroll_id":null,
  "session_id":null,
  "q":"diapers",
  "shingle_active":false,
  "location":"110005",
  "types":["allopathy","brand","sku","udp"],
  "country":"",
  "is_query_suggestion_applicable":false,
  "debug":false,
  "filters":null,
  "facets":[{"field":"sku.brand.raw","name":"brand","type":"facet","range":null},{"field":"product_form","name":"product_form","type":"facet","range":null},{"field":"rx_required","name":"rx_required","type":"facet","range":null},{"field":"uses","name":"uses","type":"facet","range":null},{"field":"age","name":"age","type":"facet","range":null},{"field":"recommended","name":"recommended","type":"facet","range":null}],
  "source_fields":["count"],
  "query_filters":null,
  "is_all":true
})}

url = 'https://search-stagapi.example.com/search-new/search/v1/search/lambda' 

r = requests.post(url, params=payload, headers=headers)
...