
Anatoly
17.01.2019
17:14:39
ну найти [ и ] вырезать и запихать в exec, вроде должно)
но я сто лет не пользовался exec

Tishka17
17.01.2019
17:15:00

Anatoly
17.01.2019
17:15:29
ну я про конкретный случай с массивом

Google

Tishka17
17.01.2019
17:15:47
Для конкретно этого массива сработает и мой код

Мотылек
17.01.2019
17:15:49
в массиве только латинские буквы

Alex
17.01.2019
17:15:50
если уже костылять, то можно сделать ast.literal_eval()
так безопасней будет

Tishka17
17.01.2019
17:15:55
Есть один единственный вариант:
x='a'
y='b'

Anatoly
17.01.2019
17:16:06
так-то можно вообще парсер написать, который понимает что там за var X=Y, но это никому не нужно)

Tishka17
17.01.2019
17:16:41
Неужели там часто меняются значения?
Вряд ли кто-то код js генерит
А значит это написано руками
А значит в следующий раз может оказаться все что угодно
А значит проще сделать как я сказал

Мотылек
17.01.2019
17:19:45
проект такой, что я кормлю ему ссылку на таблицу - а он вытягивает эту таблицу с сервака. в исходнике есть id, а id можно найти в этой переменной

Tishka17
17.01.2019
17:20:19
То есть реально js-код генерируется сервером и id каждый раз разный?

Google

Мотылек
17.01.2019
17:20:26
да

Tishka17
17.01.2019
17:20:30
Жесть
Интересно, зачем так авторы заморочились

Anatoly
17.01.2019
17:21:23
звучит как курс по инфобезу

iddqd
17.01.2019
17:22:39

Vladislav
17.01.2019
17:22:48

Anatoly
17.01.2019
17:24:11
греп умеет выводить несколько строк после матча, указывается параметрами -A -B (после, до), но трейсбеки могут быть разных размеров в смысле строк, так что хз)

Николай
17.01.2019
17:24:14

Tishka17
17.01.2019
17:24:37
grep -E "$(.* : ERROR)| |(Traceback)" file

Николай
17.01.2019
17:24:37
А. Таблице. Косо прочитал
Нуу... Вообще как в пандасе описано - есть 4 типа жсона, каждый из которых можно указать при загрузке
Так что я бы не был тут так критичен

Vladislav
17.01.2019
17:26:08

Николай
17.01.2019
17:26:50
Не увидел, но поверю
А
Увидел
Ну блин. Просто взглянув - сложно. А распарсить в таблицу очень даже возможно

iddqd
17.01.2019
17:28:53

Vladislav
17.01.2019
17:28:59
да, если знаешь заранее структуру - вполне-себе вариант.
Но если нужен именно csv, я бы не советовал для этого использовать pandas =)

Tishka17
17.01.2019
17:30:10
Ну вроде. Я не тестил, писал с телефона

Google

Tishka17
17.01.2019
17:30:10
Наверно не доллар, а ^ все таки

Anatoly
17.01.2019
17:31:29
ну выведет строки с ошибкой и словом Traceback, а сам трейсбек не выведет, или я не прав?)

Николай
17.01.2019
17:31:29
Если большой csv то вполне себе панда подойдёт

Tishka17
17.01.2019
17:32:52

Vladislav
17.01.2019
17:32:58
Почему
ну слишком большая зависимость, слишком много неочевидных вещей и слишком много доков читать =)
Проще просто обработать в dict-e, потом экспортировать в csv

Tishka17
17.01.2019
17:33:06
Все трейсы начинаются с пробела

Anatoly
17.01.2019
17:33:27
увидел, понял)

Николай
17.01.2019
17:33:54

iddqd
17.01.2019
17:42:55

Terminator
17.01.2019
18:01:55
@egrut будет жить. Поприветствуем!

chaff ?
17.01.2019
18:02:28
привет. что использовать для подключения к sqlite в многопоточном приложении?

Terminator
17.01.2019
18:02:33
Егор будет жить. Поприветствуем!

Anatoly
17.01.2019
18:03:39

Николай
17.01.2019
18:03:57

Anatoly
17.01.2019
18:04:06
ну как обычно ?

Николай
17.01.2019
18:04:52
Там можно закрывать подключение плюс тайм-аут, мб это хочет. Типа параллельно что то делать, но почти последовательно писать

Anatoly
17.01.2019
18:06:05
оно ставит лок на запись на файл, ибо весь sqlite живет одним файлом... а читать один файл в несколько потоков вроде не запрещено системно ?
но я это самое, сто лет как решил не трогать sqlite

Николай
17.01.2019
18:06:22
https://stackoverflow.com/a/21949046

Google

chaff ?
17.01.2019
18:07:07
мне писать. пишет в одного или нет, не важно, важно чтобы накладок никаких не было, а они вроде как будут, если курсор использовать в разных тредах. но не уверен

Николай
17.01.2019
18:07:43
https://github.com/jreese/aiosqlite/blob/master/README.md.
Вот например
Там Лок когда запись, тут верно писали
Но ты можешь асинхронно писать и брать

Anatoly
17.01.2019
18:08:24
с тредами вообще всё весело, там еще GIL лочит)

Николай
17.01.2019
18:08:54

Admin
ERROR: S client not available

Николай
17.01.2019
18:09:08
Он на i/o не лочит

Anatoly
17.01.2019
18:10:34
всё равно если курсор один оно будет пытаться ему тред-сейф обращение гарантировать, казалось бы

chaff ?
17.01.2019
18:10:54
давайте подробней распишу. у меня тележный бот. этот тележный бот как-то распараллеливается магическим образом (либа python-telegram-bot). ну и собственно работа с базой происходит уже внутри распараллеленного бота. а проблема в том, что нужно как-то принудительно флашить значения в файл, потому что "SQLite objects created in a thread can only be used in that same thread"
и на данный момент, если я не открываю и закрываю файл в рамках одной функции, в разных тредах у меня получаются разные экземпляры базы по сути

Николай
17.01.2019
18:12:40
Ты можешь курсоры разные в тредах нахуячить и таймауты чтоб писалось норм

Маришка
17.01.2019
18:13:03
@gloomy_philosopher @aragaer @robox

Николай
17.01.2019
18:13:03
Но если на запись то там блояится всё

Проксимов
17.01.2019
18:13:23

chaff ?
17.01.2019
18:13:44

Николай
17.01.2019
18:14:20
Используй асинхронный модуль, что кинул выше
Тебе всё равно придётся открывать и закрывать курсоры

chaff ?
17.01.2019
18:15:39
если я буду использовать этот асинхронный модуль?

Николай
17.01.2019
18:15:47
В том яисле

Google

Николай
17.01.2019
18:16:07
Если хочешь постоянный Коннект я бы рекомендовал использовать фреймворк с подключением к базе

chaff ?
17.01.2019
18:16:29
например?

Николай
17.01.2019
18:16:36
Фласк

Маришка
17.01.2019
18:16:48

Николай
17.01.2019
18:16:51
Но в чём смысл постоянно открытого Коннект?
Почему не хочешь коннектор закрывать

Anatoly
17.01.2019
18:17:06
должна быть у sqlite обёртка с пулом коннектов (в случае sqlite не пулом, но всё равно какой-то контроль доступа)

Николай
17.01.2019
18:17:26
И у sqlite есть пул коннекторов
Нет проблем

Anatoly
17.01.2019
18:17:37
ну тогда тем более не вижу проблему

chaff ?
17.01.2019
18:17:43

Николай
17.01.2019
18:17:56
Там просто в настройках Коннект надо пару параметров передать чтоб 1 тредтвсё не блочил
Не помню параметра, надо гуглить

Anatoly
17.01.2019
18:19:08
я бы предположил что твоя библиотека телеграмная раскидывает пользователей по тредам/процессам на основе chat_id и поэтому одни пользователи попадают в один тред, поэтому не вижу проблемы жить в одном треде, если тебе кажется что соседний тред что-то поменяет а у тебя данные устареют от этого, ну, добро пожаловать в неконсистентный мир

chaff ?
17.01.2019
18:20:08
вроде бы нет, но не уверен. ну и не хочу жить в таком мире, разумеется

Николай
17.01.2019
18:22:27
Или хотя бы мсскл