|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
Использую API Яндекс Маркета Вот метод http://api.yandex.ru/market/partner/doc/dg/reference/post-campaigns-id-bids.xml Подаю на вход JSON содержащий кириллицу получаю пустой JSON. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
{"offers": [{"name": "Принтер Panasonic HX-DC3EE White"}]} b'{"offers": [{"name": "\xd0\x9f\xd1\x80\xd0\xb8\xd0\xbd\xd1\x82\xd0\xb5\xd1\x80 Panasonic HX-DC3EE White"}]}' Ответ от сервера: {'bids': []} Python 3.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2014, 15:55 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
Код: python 1. 2. 3.
у вас происходит двойное преобразование в ютфв следствии чего вы запрашиваете не Принтер Panasonic HX-DC3EE White а \xcf\xf0\xe8\xed\xf2\xe5\xf0 Panasonic HX-DC3EE White Код: python 1. 2. 3. 4. 5. 6.
чувствуете разницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2014, 16:06 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
на будущее, print уже преобразует в нужную вам кодировку, и если вы при помощи print Не увидели русского текста, то явно сделали лишее преобразование ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2014, 16:17 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
Python 3.3 Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
{'offers' : [{'name': "Принтер Panasonic HX-DC3EE White"}]} TypeError: POST data should be bytes or an iterable of bytes. It cannot be of type str. На входе должен быть тип bytes если сделать encode('utf-8') то получится, как в первом варианте. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 11:12 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
если вы не заметили, то я добавил u перед текстом Код: python 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 11:59 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
и ещё: Код: python 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 12:13 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 12:33 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
BadMFесли вы не заметили, то я добавил u перед текстом Код: python 1.
Это верно для Python v.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 12:41 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
ivasi89, спс, не знал. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 14:25 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
UP ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 14:01 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
я бы помог, но ради вашей задачки совсем нет желания ставить питон 3.3 а на 2.7 такое urllib.request.Request невозможно. Точнее возможно, но немного сложнее и мне лень. Проблема у вас в том, что параметр values передаваемый в строке reg.add_data(values) имеет тип str, о чём я вам уже писал раньше, в то время как для POST данных необходимы бинарные данные. Так же я вам кидал ссылку на документацию по urllib и конкретно подготовку данных для отпарвки методом POST. Ничего из этого вам не помогло чтоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 14:58 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
BadMFПроблема у вас в том, что параметр values передаваемый в строке reg.add_data(values) имеет тип str, о чём я вам уже писал раньше, в то время как для POST данных необходимы бинарные данные. Код: python 1.
Документация говорит, что values должен быть в формате "application/x-www-form-urlencoded format" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 15:45 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
ну в том разделе что я скинул вам есть же ссылка на функцию urllib.parse.urlencode() http://docs.python.org/dev/library/urllib.parse.html#urllib.parse.urlencode ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 08:56 |
|
[Python] Передать в POST запросе JSON содержащий кирилицу
|
|||
---|---|---|---|
#18+
BadMF, Вы знаете как это s = 'http://go.mail.ru/search?fm=1&q=' quote(z) doc = urllib.request.urlopen(s).read().decode('cp1251',errors='ignore') сделать в Python 2.7.13 без urllib.request ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2017, 13:30 |
|
|
start [/forum/topic.php?fid=23&msg=38573997&tid=1460551]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 238ms |
0 / 0 |