
Rocket
19.12.2016
16:08:16

b0g3r
19.12.2016
16:09:09

Rocket
19.12.2016
16:10:39

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

b0g3r
19.12.2016
16:13:30

Rocket
19.12.2016
16:13:48

b0g3r
19.12.2016
16:14:34

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

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

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 точно постоянно поддерживаемых
это только один из примеров
Ты только себе представь - все в одном процессе, стейты и данные можно хранить локально прямо в питоне, нет задержек на запуск, экономится память... Красота да и только!

Евгений
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 раз одинаково напечатается, а тут не так.

b0g3r
19.12.2016
17:46:09

Евгений
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

Roman
19.12.2016
17:49:50

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
как это не меняется?
он же каждый раз новый создаётся

Rocket
19.12.2016
17:56:58

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

Евгений
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

Rocket
19.12.2016
18:48:13

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
Хотя для моих задач - это не такая большая проблема.