Там есть запрос POST, который прекрасно работает, когда я передать данные, как показано ниже:Python: Json свалки побег цитата
url = 'https://www.nnnow.com/api/product/details'
requests.post(url, data="{\"styleId\":\"BMHSUR2HTS\"}", headers=headers)
Но когда я использую json.dumps()
на словарь и отправить ответ, я не получаю ответ (код ответа 504), используя headers={'Content-Type': 'application/json'}
. Также попробовал json-параметр Post-запросов.
requests.post(url, data=json.dumps({"styleId":"BMHSUR2HTS"}), headers={'content-type': 'application/json'})
Теперь, возвращаемые данные по json.dumps({"styleId":"BMHSUR2HTS"})
и "{\"styleId\":\"BMHSUR2HTS\"}"
не то же самое.
json.dumps({"styleId":"BMHSUR2HTS"}) == "{\"styleId\":\"BMHSUR2HTS\"}"
дает False
, хотя печать на обоих показывает аналогичную строку.
Как я могу получить такой же формат, как "{\"styleId\":\"BMHSUR2HTS\"}"
из словаря {"styleId":"BMHSUR2HTS"}
?
Единственная разница между вашей строкой и результатом 'json.dumps' заключается в том, что последнее будет содержать пробел после двоеточия; что не является существенным в JSON и не является причиной вашей проблемы. –
Что происходит, когда вы просто передаете фактический 'dict'? Например, 'request.post (url, data = {" styleId ":" BMHSUR2HTS "}, заголовки = заголовки)'. Это форма использования в примере [request docs] (http://docs.python-requests.org/en/master/user/quickstart). –
Вы можете получить тот же результат, используя 'json.dumps ({" styleId ":" BMHSUR2HTS "}, separators = (',', ':'))', но я не понимаю, почему он не может работать из-за этого – odrling