@ru_python

Страница 1954 из 9768
Rocket
19.12.2016
16:08:16
Rocket
19.12.2016
16:10:39
а зачем делать b64decode к уже b64 cтроке?
А он разве не в bytearray*** декодит?

b0g3r
19.12.2016
16:11:06
в bytes декодит

Google
b0g3r
19.12.2016
16:11:14
но человеку, насколько я понял, приходит b64 строка

и он к ней делает ещё раз b64decode

плюс я не очень секу в base64, но мне кажется в этот набор символов никакой жсон и ютф не поместится

Rocket
19.12.2016
16:12:30
и он к ней делает ещё раз b64decode
Так он ж ее декодировать хочет, а потом в str

b0g3r
19.12.2016
16:14:34
Пробуй: json.loads(b64decode(data))
json.loads не ест байты

Leon
19.12.2016
16:14:45
Посоветуйте книги/лекции по алгебре логики. На русском/английском.

Rocket
19.12.2016
16:14:54
b0g3r
19.12.2016
16:15:13
decode вовращает байт-стринг

Rocket
19.12.2016
16:15:43
Вопрос, а в декодированных байтах точно utf-8?

b0g3r
19.12.2016
16:15:58
вот в этом и есть мой вопрос

Rocket
19.12.2016
16:16:12
И какой точно эксепшен вылетает?

Google
b0g3r
19.12.2016
16:16:59
как в base64 может поместиться ютф

Rocket
19.12.2016
16:17:14
как в base64 может поместиться ютф
Очень просто и легко: https://ru.m.wikipedia.org/wiki/Base64

b0g3r
19.12.2016
16:18:23
то что utf-7?

Rocket
19.12.2016
16:18:41
b64 кодирует любой поток байтов, который получает на входе

b0g3r
19.12.2016
16:19:28
хм, логично

Rocket
19.12.2016
16:19:34
Этот поток байтов он и получакт потом назад при декодировании. Но вопрос остается - в этом потоке точно utf-8, а не чтото другое?

b0g3r
19.12.2016
16:19:51
ну жсон бы ругнулся мол, не жсон это вовсе

Rocket
19.12.2016
16:20:07
b0g3r
19.12.2016
16:20:16
сидим тут друг с другом спорим)

Rocket
19.12.2016
16:21:36
угу... затролили ))))

хех... а может быть есть бот, который питон умеет эвалить ?

а то даже с планшетом и клавиатурой ой как не хочется лезть на сервер... )))

b0g3r
19.12.2016
16:22:35
b64encode('kommen hier ass Scheiße'.encode()) Out[5]: b'a29tbWVuIGhpZXIgYXNzIFNjaGVpw59l' b64decode(_) Out[6]: b'kommen hier ass Schei\xc3\x9fe' _.decode('utf-8') Out[7]: 'kommen hier ass Scheiße'

вот @rextester_bot

Rocket
19.12.2016
16:23:15
вот @rextester_bot
Тык, ща посмотрим...

b0g3r
19.12.2016
16:24:24
а ещё хотелось бы предложить человеку bson

может быть это то что ему нужно

Rocket
19.12.2016
16:29:35
человек то пропал...

Google
Rocket
19.12.2016
16:29:54
вообще, с py2 у меня тоже постоянный гемор был с этим

а вот с py3 уже норм

Nikolay
19.12.2016
16:33:54
мне и с py2 норм

нормально делай, нормально будет

Rocket
19.12.2016
16:34:17
вот @rextester_bot
Спасибо большое! Почти то, что нужно, за исключением того, что надо каждый раз команду вводить, нельзя включить язык по умолчанию и не париться

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

Nikolay
19.12.2016
16:36:39
до 2020 есть время :)

Rocket
19.12.2016
16:36:57
а толку то...

Nikolay
19.12.2016
16:37:00
просто по внутренним ощущениям стремно будет оставаться на py2

я какой-то криворук не смог в асинхронное, сложно

Rocket
19.12.2016
16:37:19
под ту же tornado нет нормального клиента для redis, например...

и, видимо, уже не будет

Rocket
19.12.2016
16:37:38
под aio - уже штуки 3 точно постоянно поддерживаемых

это только один из примеров

я какой-то криворук не смог в асинхронное, сложно
Надо 1 раз свернуть себе мозг слегка. И дальше все будет шикарно.

Ты только себе представь - все в одном процессе, стейты и данные можно хранить локально прямо в питоне, нет задержек на запуск, экономится память... Красота да и только!

Евгений
19.12.2016
17:42:22
Я не пропал. Просто поехал домой с работы. Дома посмотрю, что вы там насоветовали.

Если интересно, то такой json закодированный base64 отдаёт битрикс.

Причём каждый раз разный порядок, хотя исходные данные не менялись.

b0g3r
19.12.2016
17:44:32
в смысле порядок?)

Google
b0g3r
19.12.2016
17:44:36
порядок ключей?

Евгений
19.12.2016
17:45:50
Ну, например, 10 раз обычный дикт принтани и он 10 раз одинаково напечатается, а тут не так.

Евгений
19.12.2016
17:46:35
Если я не ошибаюсь. Нет возможности проверить сейчас.

b0g3r
19.12.2016
17:46:36
в "обычном дикте" в python точно также никак не сохраняется порядок ключей

Евгений
19.12.2016
17:47:53
Я и не говорил, что он что-то сохраняет. Я сказал что он выведет одинаково.

Nikolay
19.12.2016
17:48:21
?

b0g3r
19.12.2016
17:48:53
Я и не говорил, что он что-то сохраняет. Я сказал что он выведет одинаково.
если не изменять этот словарь - то он выведет одинаково

Admin
ERROR: S client not available

b0g3r
19.12.2016
17:49:54
но если его туда сюда покопировать (к примеру передать по жсону или просто .copy), или добавить-убрать туда данные, то (насколько я понимаю) хэш-таблица пересоздаётся в памяти под новый словарь и там уже порядок будет такой же случайный

Roman
19.12.2016
17:50:11
И медленнее торнадо/твистед/гевент

Евгений
19.12.2016
17:55:32
если не изменять этот словарь - то он выведет одинаково
Об этом я и говорил. Тут словарь тоже не меняется, но выводит по-разному

b0g3r
19.12.2016
17:55:42
как это не меняется?

он же каждый раз новый создаётся

b0g3r
19.12.2016
17:58:33
он же каждый раз новый создаётся
т.е. порядок ключей при создании случайный, даже если данные одни и те же - выведет ключи каждый раз в разном порядке

temp.py d = {'a':'b', 'c':'d', 'x':'y', 'n':'m'} print(d)

Евгений
19.12.2016
18:00:55
По идее подобные запросы кэшировать должно

Google
Евгений
19.12.2016
18:01:04
Большие.

b0g3r
19.12.2016
18:01:25
python temp.py {'c': 'd', 'x': 'y', 'n': 'm', 'a': 'b'} python temp.py {'x': 'y', 'a': 'b', 'n': 'm', 'c': 'd'} python temp.py {'c': 'd', 'a': 'b', 'n': 'm', 'x': 'y'} python temp.py {'a': 'b', 'n': 'm', 'x': 'y', 'c': 'd'} python temp.py {'x': 'y', 'n': 'm', 'c': 'd', 'a': 'b'} python temp.py {'x': 'y', 'n': 'm', 'c': 'd', 'a': 'b'} python temp.py {'n': 'm', 'x': 'y', 'a': 'b', 'c': 'd'} python temp.py {'n': 'm', 'a': 'b', 'c': 'd', 'x': 'y'}

Евгений
19.12.2016
18:01:51
Ок

Верю

b0g3r
19.12.2016
18:05:21
Причём каждый раз разный порядок, хотя исходные данные не менялись.
а разный порядок в json'e или уже при принте результата от json.loads()?

Евгений
19.12.2016
18:06:40
json.loads не делается

На нём падает

b0g3r
19.12.2016
18:06:55
угу

Евгений
19.12.2016
18:08:38
Вот пытаюсь понять почему падает. Я думал, что эта проблема в python 3 не проявляется...

b0g3r
19.12.2016
18:09:10
ну мы тут уже поспорили и выяснили что там конкретно этой ошибке неоткуда взяться вообще

Евгений
19.12.2016
18:10:14
Что не так с символами. Там нет ничего необычного. Кириллица, слеши, обратные слеши. Даже ни одного спецсимвола нет. Позже могу привести пример.

b0g3r
19.12.2016
18:10:40
Что не так с символами. Там нет ничего необычного. Кириллица, слеши, обратные слеши. Даже ни одного спецсимвола нет. Позже могу привести пример.
давай ты пример жсон+код+трейсбек приведешь, потому что сильное подозрение что дело там совсем не в этом

Евгений
19.12.2016
18:11:59
Ок. Позже.

Roman
19.12.2016
18:47:31
uvloop
И? Можно побенчить

Rocket
19.12.2016
18:48:13
И? Можно побенчить
Так я и говорю - цифры есть в каком месте aio медленный?

Roman
19.12.2016
18:48:20
Есть циферки?
Да. Сейчас не найду, но нагуглить свежие бенчи нетрудно.

Rocket
19.12.2016
18:48:36
"мопед не мой"

Roman
19.12.2016
18:48:49
Можно еще про днс вспомнить в asyncio

Rocket
19.12.2016
18:51:36
Днс там есть

Roman
19.12.2016
18:51:55
Днс там есть
Какой именно? Пул тредов?

Rocket
19.12.2016
18:52:00
Хотя для моих задач - это не такая большая проблема.

Страница 1954 из 9768