@ru_python

Страница 8396 из 9768
Nikolay
16.03.2019
18:28:25
sum(bool(x.get('type', str())) for x in my_json.get('sizes', list()))

Saveliy
16.03.2019
18:29:20
len(my_json.get('sizes',[]))
Работает, спасибо )

Nikolay
16.03.2019
18:29:28
Инеблагодари

Saveliy
16.03.2019
18:29:40
Google
Artur Rakhmatulin
16.03.2019
18:30:23
Попробую ) спасибо )
эти пчелы делают неправильный мед

F-Society
16.03.2019
18:30:39
Почему чтобы посмотреть видео, надо ее скачать ? Раньше вроде такого не было, или у меня что-то в настройках неправильно

F-Society
16.03.2019
18:31:35
То есть у вас не так. Ок буду искать

Artur Rakhmatulin
16.03.2019
18:33:31
То есть у вас не так. Ок буду искать
я думаю зависит от "типа". если дали ссылку на ютуб, то можно и перемотать. а если файл, то качай. хз. я не против такого

Pavel
16.03.2019
18:49:19
sum(bool(x.get('type', str())) for x in my_json.get('sizes', list()))
новичок Николай решил помогать другим новичкам?

Artur Rakhmatulin
16.03.2019
18:52:51
я думаю это конкурс на самое неоптимальное решение

надо одним потоком сохранять в гугл таблицах, а другим читать ?

Nikolay
16.03.2019
18:54:06
hachiman
16.03.2019
19:12:18
"sizes": [ { "type": "s", }, { "type": "m", } ]
m = { "sizes": [ { "type": "s", }, { "type": "m", } ] } str(m).count('type')

Google
Tigran
16.03.2019
19:14:21
?‍♂️

Pavel
16.03.2019
19:15:38
странных решений контест :)

Saveliy
16.03.2019
19:15:40
Крч , умников всегда больше чем решений )

Tigran
16.03.2019
19:17:03
странных решений контест :)
ну между странными и некорректными большая разница

hachiman
16.03.2019
19:18:30
Tigran
16.03.2019
19:18:50
сделать count через regularExpression ?
какой regular expression? у тебя всё сломается, если слово text внутри контента встретится

Pavel
16.03.2019
19:18:53
есть еще Counter, кстати

hachiman
16.03.2019
19:21:28
json же

это не Чел пишет криво

Tigran
16.03.2019
19:22:00
мы же знаем как устроена Ключ и Значение ('key': 'value')
но никто не говорил, что не может быть "sizes": [{"type": "type"}]

hachiman
16.03.2019
19:23:23
но никто не говорил, что не может быть "sizes": [{"type": "type"}]
именно "sizes": [{"type": "type"}], а не "sizes": [{"type": "type": "type"}]

Tigran
16.03.2019
19:24:32
ну и?

.count('type') не работает

hachiman
16.03.2019
19:25:46
.count('type') не работает
ну, яж спрашиваю типа Надо ли сделать это через re

Tigran
16.03.2019
19:26:20
ответ очевиден, твоё решение неправильное и надо сделать по-другому

но через re тоже корректно не сделаешь.

надо парсить json парсером json и идти циклом

Никита
16.03.2019
19:27:06
Вопрос не по Пайтону, но надеюсь на вашу помощь. Подскажите по структуре: есть посты, к которым могут прикрепляться файлы, которые можно просматривать с информацией об их размере, оригинальном имени и саму ссылку на файл. Файлы само собой можно прикреплять при создании поста, при его редактировании можно и добавлять и удалять привязанные файлы. Сейчас это реализовано так: есть API метод files.upload, через который загружается файл, в результате файл загружается в хранилище а в базе создается запись с метаданными файла и ему выдается айдишник. Полученные айдишники файлов можно передать при создании/редактировании поста в виде массива айдишников. В результате чего будет созданы записи в отделную таблицу attachments со связью в виде post_id - file_id. При получении поста, таблица attachments джоинится с таблицей файлов по ключу file_id для получения метаданных прикрепленных файлов. При удалении прикрепленного файла, вызывается метод attachments.delete, который удаляет запись из таблицы attachments. Нормальный вариант? Или есть получше? files.upload также используется для загрузки каких либо других файлов на сайте (фото профайла, аватарка группы, и т.д.)

Tigran
16.03.2019
19:30:31
Нормальный вариант, а разве видны какие-то проблемы? Не упомянута только чистка хранилища при удалении метаданных.

Google
Марк
16.03.2019
19:36:52
sum(bool(x.get('type', str())) for x in my_json.get('sizes', list()))
get страшно медленный как минимум в двойке. Я теперь его боюсь

Pavel
16.03.2019
19:37:29
get страшно медленный как минимум в двойке. Я теперь его боюсь
вот бы бояться косяков двойки за 9 месяцев до конца её жизни :)

Pavel
16.03.2019
19:39:42
Жить она еще будет долго.
я не спорю. некоторые люди до сих пор под 2.6 ядро модули пишут, например. так что и второму питону еще долго где-то присутствовать ничего не помешает

Tigran
16.03.2019
19:43:16
ломается на "type": ":type:: "

Dima
16.03.2019
19:43:32
Ты настаиваешь на своем? Говорят, хорошо настаивать на клюкве

hachiman
16.03.2019
19:44:56
ломается на "type": ":type:: "
Божечки, либо тип есть либо нет. Думаешь тип может быть ":type:: " ?

Tigran
16.03.2019
19:45:15
Божечки, либо тип есть либо нет. Думаешь тип может быть ":type:: " ?
Ну если это JSON от пользователя, я могу впихнуть в него что угодно.

Зачем отстаивать своё хуёвое решение с регулярками, когда можно просто распарсить JSON?

Artur Rakhmatulin
16.03.2019
19:46:01
import json; import re; my_json = {"sizes": [{"type": "s",},{"type": "m",}]}; print(len(re.findall('(\{\"type\"\:\s*\"\w+\"\}\,{0,1})', json.dumps(my_json))))

Pavel
16.03.2019
19:46:10
Божечки, либо тип есть либо нет. Думаешь тип может быть ":type:: " ?
чито технически там может быть что угодно, включая вложенный словарь произвольной глубины со множеством повторений type

Владимир
16.03.2019
19:46:21
Регулярки для разбора JSON — это божественная херота

Tigran
16.03.2019
19:47:42
import json; import re; my_json = {"sizes": [{"type": "s",},{"type": "m",}]}; print(len(re.findall('(\{\"type\"\:\s*\"\w+\"\}\,{0,1})', json.dumps(my_json))))
Добро пожаловать в мир хуёвых решений. Хуёвые решения — спасибо за уделённое время, мы вам перезвоним.

hachiman
16.03.2019
19:48:53
Не хотите Как хотите

oche somali yoba
16.03.2019
20:29:46
Сейчас пишу код для распознавания таблиц и их содержимого в отсканированных документах (на вход pdf, на выход json со строками и столбцами таблицы). Текущий подход - обнаружение контуров, вырезание ячеек как отдельных изображений и прогон через тессеракт. Проблема в том, что иногда даже после предобработки таблицы обрабатываются либо скошенными, либо с нерегулярными разделительными линиями, что нарушает порядок при использовании текущего метода сортировки ячеек (лист 1 до N, где потом тессеракт обнаруживает текстовые поля и принимает их за заголовки колонок, которые заполняются содержимым ячеек между заголовочными) Вот код используемой сейчас сортировки сверху вниз, слева направо def sort_rect_vertical(cnts): rect = [cv2.boundingRect(c) for c in cnts] rect.sort(key=lambda b: b[1]) line_bottom = rect[0][1]+rect[0][3]-1 line_begin_idx = 0 for i in xrange(len(rect)): if rect[i][1] > line_bottom: rect[line_begin_idx:i] = sorted(rect[line_begin_idx:i], key=lambda b: b[0]) line_begin_idx = i line_bottom = max(rect[i][1]+rect[i][3]-1, line_bottom) rect[line_begin_idx:] = sorted(rect[line_begin_idx:], key=lambda b: b[0]) Мне хотелось бы спросить, как лучше доработать этот код для расфасовывания ячеек по столбцам.

Savva
16.03.2019
20:31:29
Сейчас пишу код для распознавания таблиц и их содержимого в отсканированных документах (на вход pdf, на выход json со строками и столбцами таблицы). Текущий подход - обнаружение контуров, вырезание ячеек как отдельных изображений и прогон через тессеракт. Проблема в том, что иногда даже после предобработки таблицы обрабатываются либо скошенными, либо с нерегулярными разделительными линиями, что нарушает порядок при использовании текущего метода сортировки ячеек (лист 1 до N, где потом тессеракт обнаруживает текстовые поля и принимает их за заголовки колонок, которые заполняются содержимым ячеек между заголовочными) Вот код используемой сейчас сортировки сверху вниз, слева направо def sort_rect_vertical(cnts): rect = [cv2.boundingRect(c) for c in cnts] rect.sort(key=lambda b: b[1]) line_bottom = rect[0][1]+rect[0][3]-1 line_begin_idx = 0 for i in xrange(len(rect)): if rect[i][1] > line_bottom: rect[line_begin_idx:i] = sorted(rect[line_begin_idx:i], key=lambda b: b[0]) line_begin_idx = i line_bottom = max(rect[i][1]+rect[i][3]-1, line_bottom) rect[line_begin_idx:] = sorted(rect[line_begin_idx:], key=lambda b: b[0]) Мне хотелось бы спросить, как лучше доработать этот код для расфасовывания ячеек по столбцам.
На pastebin залей или пришли фоткой

Pavel
16.03.2019
20:32:53
На pastebin залей или пришли фоткой
какой нахрен фоткой, чему ты людей учишь

Google
Savva
16.03.2019
20:34:14
какой нахрен фоткой, чему ты людей учишь
Скрином* не то слово написал

Pavel
16.03.2019
20:34:22
Скрином* не то слово написал
хрен редьки не слаще

это самый плохой способ

Savva
16.03.2019
20:34:41
Сейчас пишу код для распознавания таблиц и их содержимого в отсканированных документах (на вход pdf, на выход json со строками и столбцами таблицы). Текущий подход - обнаружение контуров, вырезание ячеек как отдельных изображений и прогон через тессеракт. Проблема в том, что иногда даже после предобработки таблицы обрабатываются либо скошенными, либо с нерегулярными разделительными линиями, что нарушает порядок при использовании текущего метода сортировки ячеек (лист 1 до N, где потом тессеракт обнаруживает текстовые поля и принимает их за заголовки колонок, которые заполняются содержимым ячеек между заголовочными) Вот код используемой сейчас сортировки сверху вниз, слева направо def sort_rect_vertical(cnts): rect = [cv2.boundingRect(c) for c in cnts] rect.sort(key=lambda b: b[1]) line_bottom = rect[0][1]+rect[0][3]-1 line_begin_idx = 0 for i in xrange(len(rect)): if rect[i][1] > line_bottom: rect[line_begin_idx:i] = sorted(rect[line_begin_idx:i], key=lambda b: b[0]) line_begin_idx = i line_bottom = max(rect[i][1]+rect[i][3]-1, line_bottom) rect[line_begin_idx:] = sorted(rect[line_begin_idx:], key=lambda b: b[0]) Мне хотелось бы спросить, как лучше доработать этот код для расфасовывания ячеек по столбцам.
Скрин во всяком случае лучше этого

Pavel
16.03.2019
20:34:56
Savva
16.03.2019
20:35:45
С той, что на фотке и код подсвечивается, таббуляция не сбита и строки не переносятся

oche somali yoba
16.03.2019
20:35:59
Сейчас отскриню.

Tigran
16.03.2019
20:37:12
(facepalm)
Измельчали разработчики, без подсветки не могут!

oche somali yoba
16.03.2019
20:37:33
Denis
16.03.2019
20:38:52


Dark
16.03.2019
20:43:22
есть список в котором описаны прямоугольники, некоторые из них накладываются друг на друга нужно выписать координаты мест где есть прямоугольники как это сделать?



Aragaer
16.03.2019
20:44:32
а что сделать, если бы был прямоугольник, накрывающий левую нижнюю точку верхней группы и правую верхнюю нижней?

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