@ru_python

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

но я сто лет не пользовался exec

Tishka17
17.01.2019
17:15:00
ну найти [ и ] вырезать и запихать в exec, вроде должно)
А если там будет булевая переменная. Или функция

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
ок а реально ли это в таком случае представить подобные значения с помощью pandas?
JSON вообще представить в виде таблицы сложно - нелинейная структура. Но если у тебя есть конкретная структура что хранится в JSON - nо можно. Можно и в csv экспортировать, и хранить в pandas dataframe. Если скорость обработки не критична - можно обрабатывать и в обычном питоне.

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

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

Николай
17.01.2019
17:24:37
А. Таблице. Косо прочитал

Нуу... Вообще как в пандасе описано - есть 4 типа жсона, каждый из которых можно указать при загрузке

Так что я бы не был тут так критичен

Николай
17.01.2019
17:26:50
Не увидел, но поверю

А Увидел

Ну блин. Просто взглянув - сложно. А распарсить в таблицу очень даже возможно

iddqd
17.01.2019
17:28:53
grep -E "$(.* : ERROR)| |(Traceback)" file
tail -f file | grep -E "$(.* : ERROR)| |(Traceback)" я правильно написал?

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, а сам трейсбек не выведет, или я не прав?)

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

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

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

iddqd
17.01.2019
17:42:55
Наверно не доллар, а ^ все таки
что-то у меня не выходит(

grep -E "$(.* : ERROR)| |(Traceback)" file
grep -E "^(.* : ERROR)|(Traceback)|( )" file над было пробел в скобки взять, так выводится всё кроме последней строки

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
привет. что использовать для подключения к sqlite в многопоточном приложении?
читать или писать надо? читать оно сможет, а писать всё равно в одного будет, вроде

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: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
А в чем проблема брать пулл коннектов?
повторюсь, "SQLite objects created in a thread can only be used in that same thread"

Николай
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
Или хотя бы мсскл

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