-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add dumping for keyboard key value. #112
base: master
Are you sure you want to change the base?
Conversation
6badee0
to
b53e605
Compare
b53e605
to
651d76a
Compare
А вообще, можно гораздо проще. Сделать дамб самого значения ключа и не исправлять апи 👍
или так внутри меняем заэкраннированный payload: |
398dab8
to
f9ba261
Compare
153831f
to
6ec0548
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Нужен ребейз на последний коммит master
. Также добавь тесты в tests/test_utils.py
(test_stringify и test_stringify_values) для данного случая
|
||
if isinstance(value, dict): | ||
value = json.dumps(value) | ||
|
||
if isinstance(value, Iterable) and not isinstance(value, STRING_LIKE_TYPES): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if
-> elif
@@ -48,8 +48,13 @@ def json_iter_parse(response_text): | |||
def stringify_values(dictionary): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Теперь этот код находится в функции stringify
Сейчас вк-разработчики добавили апи кнопок для ботов. Там такой формат ключа
keyboard
- словарь с листами (листами) словарей.При вызове message.send с ключом
keyboard
ломалось его значение - условиеif isinstance(value, Iterable) and not isinstance(value, STRING_TYPES)
выполнялось и для значенияkeyboard
ключа, следовательно,value = u','.join(map(str_type, value))
меняло всю вложенную структуру на ключи словаряkeyboard
через запятую. Ну а дальше возникала ошибка API - неправильный формат аргументов метода.Добавил условие в цикл - для таких сложных структур делаем
json.dumps(value)
.Тестил fix только на send.message, поэтому было бы хорошо посмотреть\потестить как фикс повлияет на другие методы API. Вроде, только в кейборд такой формат данных и всё должно быть 👌 👌 👌