Denis
Плюс есть sqlite
Oleg
Оно понятно, но так хотят.
А что они хотят с json'ом делать что для них важен порядок ключей? Они там вручную парсят его что ли?
Mr Smith
кто работает с VSCODE+coderunner плагином - как ему передать environment variables, чтобы их можно было взять из os.environ? руками в vscode-овской закладке терминала не выходит, видимо это разные сессии получаются относительно vscode
Maxim
Ну или можно массив объектов сделать. Но это будет немного хуже, если потом понадобится поиск по ключу. Придется опять собирать объект.
Sergey
Я же тебе ответил, как правильно это делается.
Да, спасибо. Т.е. грузится жсон, для каждого из объектов создается список с ключами, в списке меняется порядок, новый жсон пересобирается по новому списку ключей и значениям из старого жсона, верно?
Sergey
А что они хотят с json'ом делать что для них важен порядок ключей? Они там вручную парсят его что ли?
Понятия не имею, видимо тупо в эксель загоняют и смотрят на самую последнюю строчку. Им одно значение особенно сильно важно, почему-то.
Oleg
Понятия не имею, видимо тупо в эксель загоняют и смотрят на самую последнюю строчку. Им одно значение особенно сильно важно, почему-то.
json.dumps вроде сохраняет такой же порядок ключей как и в dict'е, т.ч. если python 3.6+ то вполне можно
Oleg
d['foo'] = d.pop('foo') переместит ключ в конец
Oleg
Не надо ничего пересобирать. В json не предусмотрен порядок ключей объекта. На него нельзя полагаться.
В json не предусмотрен порядок ключей объекта что значит не предусмотрен? json текстовый формат и ключи у него в любом случае идут в каком-то порядке
Sergey
json.dumps вроде сохраняет такой же порядок ключей как и в dict'е, т.ч. если python 3.6+ то вполне можно
Сейчас уже это использую для сортирования ключей по алфанумерике.
Sergey
d['foo'] = d.pop('foo') переместит ключ в конец
Спасибо, сейчас опробую. Не знал, что для словарей работает pop
Gennady
d['foo'] = d.pop('foo') переместит ключ в конец
dict не хранит позицию ключей. Если интерпритатору удобно то он его перенесет в другой блок памяти. Ключи он держит у себя так как это удобно
Gennady
Спасибо, сейчас опробую. Не знал, что для словарей работает pop
json_response = {'foo': 1, 'bar': 2, 'egz': 3} lats_line = json_response.pop('foo') for line in json_response: print(line, json_response[line]) print('foo', lats_line)
Oleg
cpython начиная с 3.6 хранит порядок ключей, начиная с 3.7 это часть спецификации языка
Maxim
{ foo: { с: 3, b: 2, a: 1, }, fooOrdering: [“a”, “b”, “c”], } Как-то так делают, когда хотят передать информацию о порядке.
Oleg
Ну json-то в конечном итоге десериализуется в какие-то объекты. И там не будет гарантии порядка.
ну тогда и надо говорить о библиотеках или структурах в которых не предусмотренно или не гарантированно сохранение порядка ключей. Сам по себе json тут не причем
Oleg
в json'е они имеют порядок
Oleg
ну и есть подозрение что в python 3.6+ десериализация тоже будет сохранять порядок ключей
Maxim
в json'е они имеют порядок
Нет. Сама спецификация говорит, что объекты unordered.
Gennady
а python 3.7 тоже не хранит?
Только 3.7 В 3.6 еще не было такого
Oleg
Только 3.7 В 3.6 еще не было такого
ты в прошлом сообщении утверждал что в dict'е вообще порядок не сохраняется. А теперь рассказываешь где это появилось. Можешь пойдешь man'ы почитаешь для начала?
Mr Smith
ок спрошу по другому, как лучше всего в скрипт передать переменные (включая креденшелсы)? из .env файла к корне workspace тоже не кушает
Oleg
Все ради тебя
что ты этим сказать хотел?
Anonymous
Добрый день
Tigran
Добрый, Дэниел
Gennady
что ты этим сказать хотел?
То что до 3.7 это было верное утверждение
Anonymous
Добрый, Дэниел
Меня узнают. Е
Tishka17
Хотя возможно он совпадает
Oleg
То что до 3.7 это было верное утверждение
Во-первых ты вместо пруфа принес скрин непонятно какой книги. Во-вторых, там ничего не говорится ни про 3.6, ни про 3.7. А в-третьих упорядоченность ключей появилась в cpython 3.6
Anonymous
В общем даже как-то стыдно идти сюда с таким вопросом. Но все таки задам его. Пишу бота через aiogram. Пытаюсь вывести ник юзера - print(message.from.username), но выходит ошибка синтаксиса. При этом print(message.text) работает отлично. В чем может быть проблема?
Tigran
json.dumps вроде сохраняет такой же порядок ключей как и в dict'е, т.ч. если python 3.6+ то вполне можно
Это плохое предположение, не стоит из него исходить (как и вообще использовать порядок ключей в JSON).
Tigran
попробуй from_
Tishka17
Кажется у dumps была опция отсортировать ключи по алфавиту
Oleg
Это плохое предположение, не стоит из него исходить (как и вообще использовать порядок ключей в JSON).
Да я с этим и не спорю. Идея завязываться на порядок ключей мне не нравится. Но отрицать сам факт что ключи в json'е отсортированы странно
Anonymous
попробуй from_
В доке from. _from и from_ не пашут( AttributeError: 'Message' object has no attribute 'from_'
Tigran
Anonymous
Ну тогда придётся делать getattr(message, "from")
Благодарю. Оказывается перепутал, на самом деле нужно было использовать from_user.
Oleg
Не думаю что парсер гарантирует тот же порядок в дикте что и в файле.
Я тоже думаю что гарантирует. Но скорее всего имплементация loads вставляет ключи в дикт в порядке их следования. Ну у чувака там задача сделать json чтобы потом какие-то люди руками вставили его в excel. Кажется, тут можно сделать несколько допущений
Tigran
Благодарю. Оказывается перепутал, на самом деле нужно было использовать from_user.
Было безответственно со стороны Дурова назвать это поле from!
Anonymous
Было безответственно со стороны Дурова назвать это поле from!
Все верно. Просто я немного запутался в доке.
Anonymous
Подскажите какие есть библиотеки питона для визуализации социальных связей вконтакте в браузере
DeadBro
https://github.com/theskumar/python-dotenv
Mr Smith
Mr Smith
https://github.com/theskumar/python-dotenv
хм....похоже vscode c питоновским экстешненом то же самое делает автоматом https://code.visualstudio.com/docs/python/environments
Anonymous
Возможно ли встроить argparse в телеграмм бота?)
Tigran
Возможно ли встроить argparse в телеграмм бота?)
parse_args принимает любой список строк, так что можно
Tigran
https://stackoverflow.com/a/18596435/999858
Anonymous
parse_args принимает любой список строк, так что можно
У меня просто почему-то процесс остановился... Странно немного
Anonymous
Спасибо
Miras
Есть кто использовал либу TestContainers? Можно ли использовать либу TestContainers в pip на продакшене?
Anonymous
Код покажи.
https://hastebin.com/idezapuveg.py
Semen
Коллеги, добрый день! Подскажите советом, исходя из вашего опыта. Мы никак не может понять нужен ли нам sentry или без него можно обойтись или elk хватит. Проблема в том, что развернув его на сервере, могут возникнуть ситуации, когда это сервер будет не доступен. Собственно вопрос. Как будет себя вести приложение при возникновении ошибкок в таких ситуациях?
Tigran
https://hastebin.com/idezapuveg.py
Судя по agrs, у тебя там вообще local variable referenced before assignment должно выпадать.
Anonymous
Судя по agrs, у тебя там вообще local variable referenced before assignment должно выпадать.
WARNING:aiogram:Updates are skipped successfully. INFO:aiogram.dispatcher.dispatcher:Start polling. usage: server.py [-h] [-t TEST] server.py: error: unrecognized arguments: - t e s t a s j d o INFO:aiogram.dispatcher.dispatcher:Stop polling... ERROR:asyncio:Task was destroyed but it is pending! task: <Task pending coro=<Dispatcher._process_polling_updates() done, defined at C:\...\dispatcher.py:254> wait_for=<_GatheringFuture finished exception=SystemExit(2)>>
Tigran
надо parser.parse_args(shlex.split(message.text))
Anonymous
надо parser.parse_args(shlex.split(message.text))
А message.text.split(" ") подойдет?
Tigran
А message.text.split(" ") подойдет?
Подойдёт для простых случаев
Tigran
Тебе лень делать import shlex? )
Anonymous
Нет, просто я не люблю импортировать пакеты, которые не знаю)
Anonymous
Спасибо)
👑OGURCHIK🖤
😂
Anonymous
😂
Тебе смешно?
👑OGURCHIK🖤
да
👑OGURCHIK🖤
которые не знаю