Почему мой запрос на почту Django отправляет некорректно разобранный список словарей?
Вот мое представление Django:
def sendMail(request):
url = 'https://example.com/example'
dictwithlist = request.FILES['dictwithlist']
parsed = json.load(dictwithlist)
// the log file shows that the lists are intact after json.loads
logip(request, json.loads(parsed))
x = requests.post(url, json.loads(clockoutJSON))
return HttpResponse(status=204)
Если я просто отправляю разобранные данные, мой экспресс-сервер получает пустой dict, {}. Когда я регистрирую json.loads(parsed), я нахожу хорошие данные, со списками нетронутыми. Однако когда данные попадают на другую сторону, все словари внутри вложенного списка удаляются, заменяясь только строками их ключей.
Я пробовал использовать заголовки, как описано здесь: Sending list of dicts as value of dict with requests.post going wrong, но я просто получаю 500 ошибку. Я не знаю, неправильно ли я форматирую заголовки или нет. (потому что в коде есть межстрочный интервал, а я его копирую)
Может ли кто-нибудь помочь мне понять, почему это не удается? Мне нужно, чтобы список прошел со своими словарями в целости и сохранности.
Полагаю, что при отправке запроса нужно использовать dumps, а не loads:
x = requests.post(url, json.dumps(parsed))
В качестве альтернативы, если вы используете библиотеку python requests, вы можете отправить json в виде диктанта, как показано ниже:
response = requests.post(url=url, json=parsed)