Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 2, 2013 23:10:27

WhiteTiger
Зарегистрирован: 2012-11-15
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Кастомный порядок ключей в словаре

Всем привет. Такая проблема. Делаю модулем requests post-запрос на сервер. Данные для отправки (параметры post-запроса) он принимает в виде словаря. Словарь (если я не ошибаюсь) - не упорядоченный тип данных. А мне нужно чтоб POST-поля в параметрах стояли в определённом порядке. Например чтоб поле Х было обязательно в самом конце набора POST-параметров. Пытался добавлять его в словарь самым последним, но ячейка с ним попадает в середину словаря.

Отредактировано WhiteTiger (Дек. 2, 2013 23:10:54)

Офлайн

#2 Дек. 2, 2013 23:37:50

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Кастомный порядок ключей в словаре

Для чего?
Можете дополнительно передавать порядок ключей списком, и формировать OrderedDict на сервере.

Офлайн

#3 Дек. 3, 2013 06:29:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Кастомный порядок ключей в словаре

Порядок следования можно задать в ключах словаря,

dct = { "user_%s" % index: x.id for index, x in enumerate(users)}



Офлайн

#4 Дек. 3, 2013 08:45:58

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Кастомный порядок ключей в словаре

WhiteTiger
Данные для отправки (параметры post-запроса) он принимает в виде словаря.
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
Судя по докстрингу можно передавать не только словарь, но и строку. Сформируй строку сам с нужным порядком и передай её.

o7412369815963
Для чего?Можете дополнительно передавать порядок ключей списком, и формировать OrderedDict на сервере.
Он пишет бота для стороннего ресурса, судя по всему. Определенный порядок данных в POST-запросе требуется, например, на aspx сайтах, иначе не прокатывает запрос.



Отредактировано plusplus (Дек. 3, 2013 08:47:48)

Офлайн

#5 Дек. 3, 2013 12:44:20

WhiteTiger
Зарегистрирован: 2012-11-15
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Кастомный порядок ключей в словаре

Да, пишу что-то типа бота. К сожалению строка не прокатывает с requests. Решил через http.client. В нём параметры принимаются в виде строки.

Офлайн

#6 Дек. 4, 2013 08:28:03

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Кастомный порядок ключей в словаре

WhiteTiger
Да, пишу что-то типа бота. К сожалению строка не прокатывает с requests. Решил через http.client. В нём параметры принимаются в виде строки.

Ну каким-то образом requests обязан превратить словарь в строку, чтобы передать её по протоколу HTTP. Надо просто поизучать исходный код и посмотреть как это делается или попытаться нагуглить.



Отредактировано plusplus (Дек. 4, 2013 08:28:15)

Офлайн

#7 Дек. 4, 2013 09:03:47

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Кастомный порядок ключей в словаре

А просто socket сейчас уже никто не юзает? (интересно просто)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version