Кодировать URL с вложенными словарямиPython

Программы на Python
Anonymous
 Кодировать URL с вложенными словарями

Сообщение Anonymous »

Я использую API, который не принимает JSON в телах запросов. Он использует x-www-form-urlencoded .

Таким образом, если мне нужно отправить этот DICT :

Код: Выделить всё

{
'a': 1,
'b': 2,
'c': {
'k': 3,
'v': 4,
'l': {
'p': 5,
'q': 6,
},
},
}
< /code>

Это должно быть кодировано таким: < /p>

a=1
b=2
c[k]=3
c[v]=4
c[l][p]=5
c[l][q]=6
Тем не менее, urllib.parse.urlencode не будет анализировать DICT таким образом. Вместо этого он будет кодировать C контент буквально и поместить в него (

Код: Выделить всё

c={encodeddict}
).

Я попытался реализовать какой -то энкодер, подобный этому, но я не мог справиться с несколькими вложенными вложенными DICTS . Мне удалось кодировать только 1-уровневые DICTS (например, c [k] = 3 ), но не рекурсивно до последнего уровня (

Код: Выделить всё

c[l][p]=5
, например).

Как лучше всего достичь такого рода кодировки в Python 3?

Подробнее здесь: https://stackoverflow.com/questions/525 ... ctionaries

Вернуться в «Python»