Untitled-checkpoint



In [6]:
import dbProvider as db

def getRegionsTree(parentIds=None, depth=1):
	result = []
	if parentIds == None:
		regions = getRegionsByLevel([1])
	else:
		regions = []
		for pid in parentIds:
			regions.append(db.getRegionById(pid))
	if depth > 0:
		for region in regions:
			print((1-depth)*\t + "{} {} {}".format(depth, region['id'], region['name']))
			regionId = region['id']
			children = db.getRegionsByParentIds([regionId])
			region['hasChildren'] = False
			if len(children) > 0:
				region['hasChildren'] = True
			if depth > 1 and region['hasChildren']:
				for child in children:
					print((2-depth)*\t + "{} {}".format(child['id'], child['name']))
					child['children'] = getRegionsTree(parentIds = [child['id']], depth = depth - 1)
			region['children'] = children
			result.append(region)
	return result

tree=getRegionsTree(parentIds=[2], depth=2)


2 2 Московская область
	3 Дмитровский район
1 3 Дмитровский район
	4 Истра
1 4 Истра
	5 Сергиево-Посадский район
1 5 Сергиево-Посадский район
	6 Одинцовский район
1 6 Одинцовский район
	7 Ступинский район
1 7 Ступинский район
	8 Наро-Фоминский район
1 8 Наро-Фоминский район
	9 Солнечногорский район
1 9 Солнечногорский район
	10 Волоколамский район
1 10 Волоколамский район
	11 Рузский район
1 11 Рузский район
	12 Клинский район
1 12 Клинский район
	13 Серпуховский район
1 13 Серпуховский район
	14 Домодедово
1 14 Домодедово
	15 Пушкинский район
1 15 Пушкинский район
	16 Орехово-Зуевский район
1 16 Орехово-Зуевский район
	17 Егорьевск
1 17 Егорьевск
	18 Щёлковский район
1 18 Щёлковский район
	19 Чеховский район
1 19 Чеховский район
	20 Ногинский район
1 20 Ногинский район
	21 Талдомский район
1 21 Талдомский район
	22 Можайский район
1 22 Можайский район
	23 Подольск
1 23 Подольск
	24 Коломенский район
1 24 Коломенский район
	25 Мытищи
1 25 Мытищи
	26 Кашира
1 26 Кашира
	27 Шаховская
1 27 Шаховская
	28 Воскресенский район
1 28 Воскресенский район
	29 Ленинский район
1 29 Ленинский район
	30 Павловский Посад
1 30 Павловский Посад
	31 Красногорск
1 31 Красногорск
	32 Озёры
1 32 Озёры
	35 Серебряные Пруды
1 35 Серебряные Пруды
	36 Луховицы
1 36 Луховицы
	38 Раменский район
1 38 Раменский район
	46 Шатура
1 46 Шатура
	51 Лотошинский район
1 51 Лотошинский район
	53 Зарайск
1 53 Зарайск
	65 Люберцы
1 65 Люберцы
	80 Балашиха
1 80 Балашиха
	92 Черноголовка
1 92 Черноголовка
	105 Химки
1 105 Химки
	115 Звёздный городок
1 115 Звёздный городок
	116 Реутов
1 116 Реутов
	119 Звенигород
1 119 Звенигород
	120 Фрязино
1 120 Фрязино
	122 Орехово-Зуево
1 122 Орехово-Зуево
	123 Ивантеевка
1 123 Ивантеевка
	124 Пущино
1 124 Пущино
	125 Электрогорск
1 125 Электрогорск
	129 Электросталь
1 129 Электросталь
	130 Серпухов
1 130 Серпухов
	133 Бронницы
1 133 Бронницы
	135 Королёв
1 135 Королёв
	138 Дубна
1 138 Дубна
	140 Протвино
1 140 Протвино
	141 Котельники
1 141 Котельники
	144 Рошаль
1 144 Рошаль
	145 Красноармейск
1 145 Красноармейск
	149 Восход
1 149 Восход
	152 Жуковский
1 152 Жуковский
	153 Лобня
1 153 Лобня
	155 Лосино-Петровский
1 155 Лосино-Петровский
	157 Дзержинский
1 157 Дзержинский
	159 Лыткарино
1 159 Лыткарино
	161 Долгопрудный
1 161 Долгопрудный
Out[6]:
'\nfor region in tree:\n    print(str(region[\'id\'])+" "+region[\'name\'])\n    for child in region.get(\'children\', []):\n        print(\'\t\'+str(child[\'id\'])+" "+child[\'name\'])\n        for child1 in child.get(\'children\', []):\n            print(\'\t\t\'+str(child1[\'id\'])+" "+child1[\'name\'])\n            for child2 in child1.get(\'children\', []):\n                print(\'\t\t\t\'+str(child2[\'id\'])+" "+child2[\'name\'])\n                for child3 in child2.get(\'children\', []):\n                    print(\'\t\t\t\t\'+str(child3[\'id\'])+" "+child3[\'name\'])\n'

In [7]:
for region in tree:
    print(str(region['id'])+" "+region['name'])
    for child in region.get('children', []):
        print('\t'+str(child['id'])+" "+child['name'])
        for child1 in child.get('children', []):
            print('\t\t'+str(child1['id'])+" "+child1['name'])
            for child2 in child1.get('children', []):
                print('\t\t\t'+str(child2['id'])+" "+child2['name'])
                for child3 in child2.get('children', []):
                    print('\t\t\t\t'+str(child3['id'])+" "+child3['name'])


2 Московская область
	3 Дмитровский район
		3 Дмитровский район
			3 Дмитровский район
				3 Дмитровский район
	4 Истра
		4 Истра
			4 Истра
				4 Истра
	5 Сергиево-Посадский район
		5 Сергиево-Посадский район
			5 Сергиево-Посадский район
				5 Сергиево-Посадский район
	6 Одинцовский район
		6 Одинцовский район
			6 Одинцовский район
				6 Одинцовский район
	7 Ступинский район
		7 Ступинский район
			7 Ступинский район
				7 Ступинский район
	8 Наро-Фоминский район
		8 Наро-Фоминский район
			8 Наро-Фоминский район
				8 Наро-Фоминский район
	9 Солнечногорский район
		9 Солнечногорский район
			9 Солнечногорский район
				9 Солнечногорский район
	10 Волоколамский район
		10 Волоколамский район
			10 Волоколамский район
				10 Волоколамский район
	11 Рузский район
		11 Рузский район
			11 Рузский район
				11 Рузский район
	12 Клинский район
		12 Клинский район
			12 Клинский район
				12 Клинский район
	13 Серпуховский район
		13 Серпуховский район
			13 Серпуховский район
				13 Серпуховский район
	14 Домодедово
		14 Домодедово
			14 Домодедово
				14 Домодедово
	15 Пушкинский район
		15 Пушкинский район
			15 Пушкинский район
				15 Пушкинский район
	16 Орехово-Зуевский район
		16 Орехово-Зуевский район
			16 Орехово-Зуевский район
				16 Орехово-Зуевский район
	17 Егорьевск
		17 Егорьевск
			17 Егорьевск
				17 Егорьевск
	18 Щёлковский район
		18 Щёлковский район
			18 Щёлковский район
				18 Щёлковский район
	19 Чеховский район
		19 Чеховский район
			19 Чеховский район
				19 Чеховский район
	20 Ногинский район
		20 Ногинский район
			20 Ногинский район
				20 Ногинский район
	21 Талдомский район
		21 Талдомский район
			21 Талдомский район
				21 Талдомский район
	22 Можайский район
		22 Можайский район
			22 Можайский район
				22 Можайский район
	23 Подольск
		23 Подольск
			23 Подольск
				23 Подольск
	24 Коломенский район
		24 Коломенский район
			24 Коломенский район
				24 Коломенский район
	25 Мытищи
		25 Мытищи
			25 Мытищи
				25 Мытищи
	26 Кашира
		26 Кашира
			26 Кашира
				26 Кашира
	27 Шаховская
		27 Шаховская
			27 Шаховская
				27 Шаховская
	28 Воскресенский район
		28 Воскресенский район
			28 Воскресенский район
				28 Воскресенский район
	29 Ленинский район
		29 Ленинский район
			29 Ленинский район
				29 Ленинский район
	30 Павловский Посад
		30 Павловский Посад
			30 Павловский Посад
				30 Павловский Посад
	31 Красногорск
		31 Красногорск
			31 Красногорск
				31 Красногорск
	32 Озёры
		32 Озёры
			32 Озёры
				32 Озёры
	35 Серебряные Пруды
		35 Серебряные Пруды
			35 Серебряные Пруды
				35 Серебряные Пруды
	36 Луховицы
		36 Луховицы
			36 Луховицы
				36 Луховицы
	38 Раменский район
		38 Раменский район
			38 Раменский район
				38 Раменский район
	46 Шатура
		46 Шатура
			46 Шатура
				46 Шатура
	51 Лотошинский район
		51 Лотошинский район
			51 Лотошинский район
				51 Лотошинский район
	53 Зарайск
		53 Зарайск
			53 Зарайск
				53 Зарайск
	65 Люберцы
		65 Люберцы
			65 Люберцы
				65 Люберцы
	80 Балашиха
		80 Балашиха
			80 Балашиха
				80 Балашиха
	92 Черноголовка
		92 Черноголовка
			92 Черноголовка
				92 Черноголовка
	105 Химки
		105 Химки
			105 Химки
				105 Химки
	115 Звёздный городок
		115 Звёздный городок
			115 Звёздный городок
				115 Звёздный городок
	116 Реутов
		116 Реутов
			116 Реутов
				116 Реутов
	119 Звенигород
		119 Звенигород
			119 Звенигород
				119 Звенигород
	120 Фрязино
		120 Фрязино
			120 Фрязино
				120 Фрязино
	122 Орехово-Зуево
		122 Орехово-Зуево
			122 Орехово-Зуево
				122 Орехово-Зуево
	123 Ивантеевка
		123 Ивантеевка
			123 Ивантеевка
				123 Ивантеевка
	124 Пущино
		124 Пущино
			124 Пущино
				124 Пущино
	125 Электрогорск
		125 Электрогорск
			125 Электрогорск
				125 Электрогорск
	129 Электросталь
		129 Электросталь
			129 Электросталь
				129 Электросталь
	130 Серпухов
		130 Серпухов
			130 Серпухов
				130 Серпухов
	133 Бронницы
		133 Бронницы
			133 Бронницы
				133 Бронницы
	135 Королёв
		135 Королёв
			135 Королёв
				135 Королёв
	138 Дубна
		138 Дубна
			138 Дубна
				138 Дубна
	140 Протвино
		140 Протвино
			140 Протвино
				140 Протвино
	141 Котельники
		141 Котельники
			141 Котельники
				141 Котельники
	144 Рошаль
		144 Рошаль
			144 Рошаль
				144 Рошаль
	145 Красноармейск
		145 Красноармейск
			145 Красноармейск
				145 Красноармейск
	149 Восход
		149 Восход
			149 Восход
				149 Восход
	152 Жуковский
		152 Жуковский
			152 Жуковский
				152 Жуковский
	153 Лобня
		153 Лобня
			153 Лобня
				153 Лобня
	155 Лосино-Петровский
		155 Лосино-Петровский
			155 Лосино-Петровский
				155 Лосино-Петровский
	157 Дзержинский
		157 Дзержинский
			157 Дзержинский
				157 Дзержинский
	159 Лыткарино
		159 Лыткарино
			159 Лыткарино
				159 Лыткарино
	161 Долгопрудный
		161 Долгопрудный
			161 Долгопрудный
				161 Долгопрудный

In [ ]: