@python_beginnersЭта группа больше не существует

Страница 590 из 1885
Cykooz
18.10.2016
21:39:48
так я нажал PrtScr и в чате "вставить" (без сохранения на комп)
У меня в этом случае появляет окно телеги где есть галочка насчёт компресии картинки

Cykooz
18.10.2016
21:40:25
Нет, у меня десктоп

x3233
18.10.2016
21:40:52
веб не спрашивает (

Google
Cykooz
18.10.2016
21:41:21
А поставить нормальную версию что мешает?

x3233
18.10.2016
21:42:03
с веба удобнее читать апи телеги и сразу в ней сидеть

кто нибудь видел парсинг в базу телеги?

не извращаясь вот так

Cykooz
18.10.2016
21:43:25
Может тебе это всё в виде JSON в базу сохранять?

А не создавать 100 колонок в таблице

Stanislav
18.10.2016
21:44:04
x3233
18.10.2016
21:44:24
так оно невалидный json

Cykooz
18.10.2016
21:44:39
В колонки вынести только что то важное, для чего надо будет индексы пилить, запросы там всякие строить. Хотя если у тебя PostgreSQL то там можно индексы и на JSONb поля вешать

x3233
18.10.2016
21:44:41
да и в нем не все ветки есть

в зависимости от типа сообщения там разные значения появляются

Cykooz
18.10.2016
21:45:28
Чего там не валидного?

x3233
18.10.2016
21:45:42
там не в кавычках значения

Google
x3233
18.10.2016
21:45:55
'mime_type': None,

Cykooz
18.10.2016
21:45:56
быр

почитай документацию про стандартный модуль питона json

x3233
18.10.2016
21:47:33
почитай документацию про стандартный модуль питона json
так смотри, если я кинул в телегу видео то там будут поля video_mime_type video_file_id video_file_size video_width video_height video_duration

Cykooz
18.10.2016
21:47:37
Любой валидный питонячий словарь с простыми типами данных (строки, числа, списки, словарики) можно заэнкодить в JSON

И что в этих полях мешает заталкиванию их в JSON?

Имя поля нормальное, значение - строка или число. Всё ОК

x3233
18.10.2016
21:48:21
и эти поля будут заполнены и эти значения мне надо забрать, а вот если я кину аудио то полей с видео вообще не будет в этом json

как тогда в базу писать?

Cykooz
18.10.2016
21:48:42
В виде JSON

x3233
18.10.2016
21:48:43
надо базе сказать что эти поля == нулл

Cykooz
18.10.2016
21:49:02
Ты точно уверен что тебе нужны 100 колонов в таблице? Что ты с ними делать будешь?

x3233
18.10.2016
21:50:10
в ответе приходит не 100 ответов, но вариаций этого jsona очень много и полей будет больше сотки

Cykooz
18.10.2016
21:50:16
Ты будешь делать сложные запросы вида WHERE (video_mime_type = 'video/mp4' OR audio_mime_type = 'audio/mp3') AND .... ?

Ты по моему всё ещё не догоняешь что я тебе предлагаю

Я тебе предлагаю засунуть всю эту структуру в одну колонку таблицы в виде JSON

x3233
18.10.2016
21:51:00
нет, для начала надо просто положить все в базу

Я тебе предлагаю засунуть всю эту структуру в одну колонку таблицы в виде JSON
у меня база будет на 100 колонок, а в json придет 50, у меня же это база не сожрет)

Cykooz
18.10.2016
21:52:02
Если у тебя PostgreSQL, то там есть для этого специальный тип данных JSONB, елси у тебя MySQL или ещё что полегче, то можно использовать тип TEXT

Всё зависит от того что ты потом будешь делать с этими данными

Google
x3233
18.10.2016
21:52:17
у меня sqlite)

Cykooz
18.10.2016
21:52:35
ну тогда TEXT

x3233
18.10.2016
21:52:40
потом делать сложные запросы из нескольких таблиц

inner join

Cykooz
18.10.2016
21:53:44
Ну вот на примере этих полей для видео. Тебе надо будет делать запросы вида - "найди все сообщения в которых есть видео заданого типа и разрешения"?

x3233
18.10.2016
21:54:16
примерно да

Cykooz
18.10.2016
21:54:27
Тогда страдай ?

x3233
18.10.2016
21:54:56
?

Cykooz
18.10.2016
21:54:59
Придётся лепить тебе кучу колонок

x3233
18.10.2016
21:55:01
оокай)

b0g3r
18.10.2016
21:55:11
не очень понимаю зачем 100 полей держать в одной таблице

Cykooz
18.10.2016
21:55:12
вешать на них кучу индексов, что бы запросы быстро выполнялись

b0g3r
18.10.2016
21:55:31
когда можно наплодить таблиц для каждой сущности (видео, фото)

x3233
18.10.2016
21:55:37
Cykooz
18.10.2016
21:55:39
Ну да, правильнее было бы раскидать это всё по разным табличкам

x3233
18.10.2016
21:56:29
Ну да, правильнее было бы раскидать это всё по разным табличкам
тогда там будут дублироваться поля время\кто\что\когда

выполнения*

Cykooz
18.10.2016
21:57:10
В основной табличке можно только ID сообщения, даты, текст В остальных таблицах - ID(автоинкремент), message_id из первой таблицы + все поля для заданого типа (например для видео)

это влияет на скорость работы?
Это влияет на твоё будущее психическое состояние в процессе работы над этим кодом

Google
x3233
18.10.2016
21:58:23
?

хорошо, попробую разнести все по таблицам, спасибо)

Cykooz
18.10.2016
22:00:00
А поскольку видео и фото - это наверное от силы 5% всех сообщений. То это наверное тебе ещё и сэкономит место занимаемое базой

Если появится новый тип контента - просто добавляешь новую таблицу и это ни как не поломает твой старый код для работы с другим контентом, т.к. его даже менять не придётся.

x3233
18.10.2016
22:03:28
а sql скрипт из питона как то выносится отдельно из основного кода?

Cykooz
18.10.2016
22:04:36
ммм, тут прям 100500 возможностей

x3233
18.10.2016
22:05:13
тогда вообще все хорошо )

Cykooz
18.10.2016
22:06:44
Можно херачить сырыми SQL-ками в питоне. Можно заюзать враперы, которые позволяют вмето SQL писать как бы на питоне, а оно потом само сгенерит SQL для нужного типа базы (sqlite в твоём случае). Можно заюзать ORM, в котором ты будешь иметь дело по сути с почти обычными классами и объектами питона, а ORM за тебя будет всё это сохранять в базу и обратно от туда вытаскивать.

x3233
18.10.2016
22:07:55
ну орм как понимаю это от вебсервера штука, я пока туда не лез

Admin
ERROR: S client not available

Cykooz
18.10.2016
22:08:14
ОРМ к вебсерверу не имеет ни какого отношения

x3233
18.10.2016
22:08:31
ммм

гуглю

Cykooz
18.10.2016
22:08:41
ОРМ может бытьвстроена в вебфреймворк (плевок в сторону Django), а может быть отдельной либой

x3233
18.10.2016
22:10:14
Прикольная штука, но лучше буду писать на sql, его тоже знать полезно)

Cykooz
18.10.2016
22:10:55
Denis
18.10.2016
22:11:07
Хаскель тоже знать полезно, но это не значит, что нужно на нем писать

Cykooz
18.10.2016
22:11:15
Хотя в твоём положении это наверное действительно самое оптимальное

Изучишь всё с самых низов

x3233
18.10.2016
22:12:04
всем спасибо)

Google
[Anonymous]
18.10.2016
22:12:11
Хаскель тоже знать полезно, но это не значит, что нужно на нем писать
в чем суть монад? есть похожие конструкции на питоне?

Denis
18.10.2016
22:12:39
Если хаскель полезно знать, это еще не значит, что я его знаю

b0g3r
18.10.2016
22:12:49
хехе

[Anonymous]
18.10.2016
22:12:55
?

Cykooz
18.10.2016
22:13:04
Как я понял монада - это такая грязная тряпка на чистой и блестящей функциональщине ?

[Anonymous]
18.10.2016
22:13:22
аналогию!

Denis
18.10.2016
22:13:23
Можно свою написать

Cykooz
18.10.2016
22:13:50
Нахера она питону - не знаю. Там и без неё отлично можно делать IO не запариваясь "чистотой"

[Anonymous]
18.10.2016
22:14:38
хочется учить хаскель, чтобы понять, что этот такое чистая функциональщина

в голове одни переменные

Cykooz
18.10.2016
22:14:59
нету там переменных, забудь про них

[Anonymous]
18.10.2016
22:15:17
и что там есть тогда?

/dev
18.10.2016
22:15:59
и что там есть тогда?
Функции, типы, монады

Cykooz
18.10.2016
22:16:05
Нет переменных в том смысле, что их нельзя там менять

[Anonymous]
18.10.2016
22:16:32
ну вот у меня функция def, состоит из переменных, видимо, это неправильная функция

вот уже яснее

/dev
18.10.2016
22:16:59
И персистентные структуры во все поля

Артем
18.10.2016
22:17:03
Пора уже спать

Stanislav
18.10.2016
22:34:53
Блин такие качественные подкасты жаль нет времени слушать

Страница 590 из 1885

Эта группа больше не существует Эта группа больше не существует