сформировать запрос данных со многими элементами с одинаковым именем - PullRequest
0 голосов
/ 31 августа 2018

Мне нужно создать длинный список параметров для публикации на веб-странице, которая не является основанной на словаре причиной нескольких одинаковых ключей.

Chromium показывает эту строку как данные формы в исходном запросе

p_action=RUN&p_mode=1&p_exec_mode=&p_page_url=&p_redirect_url=&p_reference_path=&p_arg_names=_title&p_arg_values=ARRAYSTART&p_arg_values=kschulz&p_arg_values=ARRAYEND&p_arg_names=reqnum&p_arg_values=ARRAYSTART&p_arg_values=0&p_arg_values=ARRAYEND&p_arg_names=_orderby_ord_1&p_arg_values=ASC

.... следуют намного больше записей.

Я знаю, что это сумасшедшие данные формы, но я не могу это изменить. p_arg_names используется несколько раз и иногда сопровождается несколькими p_arg_value записями. Array Start и Array Stop даже существуют ... Так что мне тоже нужен правильный порядок.

params=dict ... здесь не может работать.

Как я могу предоставить requests.push(URL,DATA) длинную чистую строку без потери

Content-Type:application/x-www-form-urlencoded

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Params dict может работать здесь , дать ему список значений .., например:

r = requests.get('http://example.com', {'something': [1, 2, 3, 4, 5]})

(используйте .get / .put / .post / .patch - или что вы подразумеваете под .push выше)

Сервер получит запрос, такой как:

"GET /?something=1&something=2&something=3&something=4&something=5 HTTP/1.1" 200 396 "-" "python-requests/2.18.4"
0 голосов
/ 31 августа 2018

Использование модуля requests

import requests

request.post('http://127.0.0.1/8000/', params= {'p_arg_names': ['a', 'b']})

Результаты в

Пост http://127.0.0.1/8000/?p_arg_names=a&p_arg_names=b HTTP / 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...