Ответы пользователя по тегу Python
  • Не понял простой Python код, поможете?

    @illaaa
    Ты создал функцию, которая принимает переменное количество параметров:
    1 - "а"
    2 - список чисел (1,2,3)
    3 - словарь {Jack=1123, John=2231, Inge=1560}
    Ответ написан
    Комментировать
  • Ошибка в Python,что делать?

    @illaaa
    У словарей нет такого метода. Используйте один из следующих вариантов:
    dict.pop()
    del dict[key]
    Ответ написан
    Комментировать
  • Решение задачи Python?

    @illaaa
    num_set = set()
    x = 1
    
    while x != 0:
        x=int(input('введите число '))
        num_set.add(x)
        
    num_set.remove(max(num_set))
    print(max(num_set))
    Ответ написан
    6 комментариев
  • Как получить (сформировать) из БД иерархический справочник?

    @illaaa
    Думаю, структура базы не должна быть какой-то особенной для решение данной задачи. Просто создаем таблицу, заливаем в нее данные (примеры на MS SQL, но думаю, суть будет ясна):
    5dd649fc12102473040510.png

    С помощью Python подключиться к базе не очень сложно, вот ссылка на статью, там довольно доступно объясняется - https://habr.com/ru/post/321510/

    После получения данных из базы, они будут выглядеть примерно так:
    result = [('Moscow', 'Ivanova', '10',) , ('Moscow', 'Ivanova', '13a',) , ('Moscow', 'Ivanova', '2') ......]

    После чего добавляем данные из базы в словарь, из которого потом формируем json с помощью модуля с таким же названием(json).
    Вот скрипт, которым я пользовался (данные немного другие, чем со скриншота, но суть не меняется):
    import json
    import collections as col
    
    
    rows_from_DB = [('Moscow','Lomonosova','14',), ('Moscow','Lomonosova','15a',), ('Omsk','Ivanova','4',), ('Moscow','Kotlyara','7',), ('Sochi','Zhukova','11b',)]
    
    cities = col.defaultdict()
    
    
    for row in rows_from_DB:
        
        if row[0] not in cities:
            cities[row[0]] = col.defaultdict()
            
            
        if row[1] not in cities[row[0]]:
            cities[row[0]][row[1]] = []
           
            
        cities[row[0]][row[1]].append(row[2])
        
        
    print(json.dumps(cities))


    Скрипт далеко не идеальный, думаю, если почитать больше про defaultdict, будет проще его оптимизировать.

    На выходе вот такой json (немного отличается от требуемого, но можно поиграться с модулем, для нужного результата):
    {
    	"Omsk": {
    				"Ivanova": ["4"]
    			}, 
    	"Moscow": {
    				"Kotlyara": ["7"], 
    				"Lomonosova": ["14", "15a"]
    			  }, 
    	"Sochi": {
    				"Zhukova": ["11"]
    			 }
    }
    Ответ написан
    Комментировать
  • Работа с txt файлом, как читать большое количество значений в txt?

    @illaaa
    Не знаю, насколько этот вариант оптимальный, но все же
    def user_search(user):
        
        with open('file_path', 'w+') as file:
    
            text_file = file.read()
        
            try:
                user_index = text_file.index(str(user))
                # если он нашелся, дальше можно как-то распарсить значения sms и phone,
                # в заваисимости от значений выводить разные print
                
                
            # если его нет в файле, выдаст ValueError, тогда добавляем его
            except ValueError:
                text_file.write('{users: #' + user + ' [sms = false , phone = false]}')
    Ответ написан
    Комментировать