brestows
for key, value in dictionary.items():
сделал так: for k_key, k_value in kwargs.items(): search_filter = '&'.join(['filter[{}][{}]={}'.format(k_key, key, value) for (key, value) in k_value.items()] )
Андрей
Зачем &?
brestows
хотя нет, это не то что мне надо
brestows
так надо )
Андрей
Ща на работу приду – сделаю
Андрей
так надо )
Если ты юрл собираешь так ....
brestows
да, надо собрать часть url на основании словоря
adamfull
да, надо собрать часть url на основании словоря
Помню так же через костыли поисковой запрос для sql собирал
brestows
почему костыли ? просто есть некая API которая требует такой формат запроса, не умеет эта API принимать в GET запросе параметры через тело запроса, а искать иногда надо более чем по одному полю, вот и приходится таким образом составлять запрос
brestows
Костыли из-за костылей
А как без костылей ? хотя бы с моей стороны ) костыли на стороне API я точно не решу )
Сергій
2 недели на фичу норм. На целый проект - нет
У меня на первой работе (ремонт промышленной электроники) начальник мыслил категориями "Тут работы на 5 минут", "Тут работы на пол часа" "Так, что у вас тут, двигатель два дня перебираете? Так тут работы на пол часа" После этого я временами комплексую и верю, что есть сферические в вакууме работники с архи высокой квалификацией, которые фичу делают за 5 минут, а проект за 30.
adamfull
Но потом я осознал, что так лучше не делать
Tishka17
хотя нет, это не то что мне надо
Так что тебе надо получить?
Tishka17
И на 5 правок от клиента
Ну это ещё на месяцы. Я про непроработанные задачи, костыли и тупящих людей
brestows
Так что тебе надо получить?
Вот передаю в качестве параметра в функцию такой словарь: { nip={'eq': '123456789'}, account_name={'eq': 'test'} } надо получить вот такую строку: &filter[nip][eq]=123456789&filter[account_name][eq]=test
Tishka17
"на 5 минут" - это сделать костыль для одной ситуации. Две недели - это тупят. А так можно нормально проработать и часто придумать нормальное решение и запланировать нужный рефакторинг при необходимости
brestows
что именно ?
brestows
API ?
Tishka17
Формат урла
brestows
да именно они )
Андрей
А как ты определил?
Tishka17
В общем, у тебя вообще откуда словарь такой взялся? По идее этому соответствует словарь {"filter[nip]": 123456789, "filter[account_name][eq]": "test"}
Tishka17
А как ты определил?
Потому что это никаким стандартном не покрыто, но пхп умеет парсить такие вещи во вложеннны словари
Tishka17
Хотя не
brestows
for k_key, k_value in kwargs.items(): search_filter += ''.join( ['&filter[{}][{}]={}'.format(k_key, key, value) for (key, value) in k_value.items()] )
brestows
вот генерится то что надо )
Tishka17
d={'k':1, 'v':{'w':{'x':2}}} def php(d, wrap=False): for k,v in d.items(): if wrap: k=f'[{k}]' if isinstance(v, dict): for k2,v2 in php(v, True): yield k+k2, v2 else: yield k, v print(dict(php(d)))
brestows
хотя конконтинация строк через + очень не оптимальна
Tishka17
for k_key, k_value in kwargs.items(): search_filter += ''.join( ['&filter[{}][{}]={}'.format(k_key, key, value) for (key, value) in k_value.items()] )
не надо урл самому формировать. Для этого есть urllib.parse или requests сам умеет
brestows
Чойто
ну я много где читал про это, даже помоему в оф документации видел, по-моему
Tishka17
Попробовал твой код. Не работает
Tishka17
ну я много где читал про это, даже помоему в оф документации видел, по-моему
Тебя обманули. Там все чуть сложнее р как правило никаких проблем нет. У нас не джава
Tishka17
for k_key, k_value in kwargs.items(): search_filter += ''.join( ['&filter[{}][{}]={}'.format(k_key, key, value) for (key, value) in k_value.items()] )
Сначала формируй словарь. А потом из него с помощью стандартной либы формируй урл
Tishka17
Ну или сам разбирайся с экранированием, что несколько бессмысленно
Tishka17
Ну вот я свой словарь сунул в него, он упал
Tishka17
Твой код работает только когда ровно 2 уровня вложенности.
Tishka17
А зачем писать такое, когда можно сделать нормально?
brestows
так а больше и не надо
Tishka17
так а больше и не надо
А 1 тоже не надо?
brestows
а нормально это как ?
Tishka17
Выше блин код
Tishka17
Ну и про экранирование я сказал
brestows
это предается в функцию через kwargs
brestows
так что не знаю, надо попробовать что ты написал
brestows
Спасибо
Tishka17
@khbfr предупреждение
Tishka17
За оскорбления
Kirill
За оскорбления
Кого? Может вы спутали?
Tishka17
Не спутал
Kirill
Не спутал
Ок, на всякий случай извиняюсь
Kirill
Фласк- uwsgi после закрытия сокета, не даёт вновь его открыть, как искать? в systemctl пусто
Tishka17
Что за закрытие сокета?
Kirill
Что за закрытие сокета?
:5000 порт, ктрл-з на запущенном питон файле
ixvil
товарищи, подскажите нубу - почему первый вариант работает, а второй нет ?
Tishka17
:5000 порт, ктрл-з на запущенном питон файле
Контрол -з это сворачивание программы как бы. Она все ещё работает, просто остановлена
ixvil
Tishka17
В первом случае создаётся set, во втором - пустой словарь. Увы, пустой сет надо создавать через set()
Kirill
Воооот, а я хочу systemctl restart (неизвестно)
brestows
если нажали Ctrl + z то приложение уйдет в сон, что бы вернуть его
brestows
просто введит в консоли fg
brestows
и приложение проснется
elessar
есть csv "171760","7172","1","94526","473000","26(78)","","1650414" "340788","7172","1","94526","473000","31(61)","","1650414" "787920","7172","1","94526","473000","14","","1659645" "797215","7172","1","94526","473000","1(1/1)","","1650414" "820277","7172","1","21993","010000","57/2(77)","","1654816" "1071777","7172","1","94526","473000","23","","1657750" "1274032","7172","1","21992","010000","5","","98866" "1306709","7172","1","21992","010000","55(21/1)","","1650380" "10733210","7142","7642","26224","110012","18 ИП "Че","ховкий"","725704" "23202262","7172","1","36077","010000","8"","","1660628"
Tishka17
Воооот, а я хочу systemctl restart (неизвестно)
я не понял как ты смешал запуск через systemd и напрямую