-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmongo_insert.py
More file actions
183 lines (148 loc) · 39.5 KB
/
mongo_insert.py
File metadata and controls
183 lines (148 loc) · 39.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
from pymongo import MongoClient
import requests as r
import bson
def mongo_inserts():
# Замените "your_connection_string" на строку подключения к вашему MongoDB
# Например: "mongodb://username:password@localhost:27017/mydatabase"
mongo_url = "mongodb://root:password@193.104.57.178:27017"
# Создайте подключение к базе данных
client = MongoClient(mongo_url)
# Выберите базу данных (используйте ваше собственное имя базы данных)
db = client["task-allocator"]
# Выберите коллекцию, в которую вы хотите добавить запись (используйте ваше собственное имя коллекции)
collection = db["branches"]
def get_coord(address):
return r.get('https://geocode-maps.yandex.ru/1.x?apikey=c8ec1e5f-24db-4383-8ae8-5f597a09d4ad&'
f'geocode="{address}"&lang=ru&format=json&results=1').json()['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos']
def formatter(a: list) -> list:
if len(a) == 6:
a_0,a_1,a_2,a_3,a_4,a_5 = a[:6]
coor = get_coord(a_0+', Краснодар').split()
lon,lat = coor
a_1 = int(a[1] == "давно")
a_2 = int(a[2] == "да")
else:
a_0 = a[0]
coor = get_coord(a_0).split()
lon,lat = coor
a_1,a_2,a_3,a_4,a_5 = [None]*5
return ({
"address":
{ "latitude": lat,
"longitude": lon,
"address": u''.join(a_0)
},
"connectionDate": a_1,
"cardMaterialsDelivered": a_2,
"lastCardIssuanceDays": int(a_3) if a_3 else a_3,
"approvedIssuesNumber": int(a_4) if a_4 else a_4,
"issuanceCardCount": int(a_5) if a_5 else a_5,
"is_office": False if len(a) >= 6 else True
}, lon,lat)
# Определите данные, которые вы хотите добавить в коллекцию
addresses = {}
s = set()
for i in [['ул. Ставропольская, д. 140', 'вчера', 'нет', '0', '0', '0'], ['ул. им. Максима Горького, д. 128', 'давно', 'да', '3', '15', '3'], ['ул. им. Дзержинского, д. 100', 'давно', 'да', '3', '9', '1'], ['ул. Красноармейская, д. 126', 'давно', 'да', '0', '38', '23'], ['х. Ленина, п/о. 37', 'давно', 'нет', '0', '14', '0'], ['тер. Пашковский жилой массив, ул. Крылатая, д. 2', 'давно', 'да', '12', '19', '1'], ['ул. Восточно-Кругликовская, д. 64/2', 'давно', 'да', '27', '19', '12'], ['ул. Красных Партизан, д. 439', 'давно', 'да', '33', '84', '63'], ['ул. Таманская, д. 153 к. 3, кв. 2', 'давно', 'да', '2', '15', '1'], ['ул. им. Дзержинского, д. 165', 'давно', 'да', '0', '19', '0'], ['ст-ца. Елизаветинская, ул. Широкая, д. 260', 'давно', 'да', '15', '29', '15'], ['ул. им. Тургенева, д. 174, 1 этаж', 'вчера', 'нет', '0', '0', '0'], ['ул. Уральская, д. 162', 'давно', 'да', '4', '21', '5'], ['ул. Уральская, д. 79/1', 'вчера', 'нет', '0', '5', '0'], ['ул. им. Селезнева, д. 197/5', 'давно', 'да', '7', '14', '3'], ['ул. Уральская, д. 117', 'вчера', 'нет', '0', '0', '0'], ['ул. им. 40-летия Победы, д. 20/1', 'давно', 'да', '4', '35', '15'], ['ул. им. Атарбекова, д. 24', 'вчера', 'нет', '0', '6', '0'], ['ул. им. Героя Аверкиева А.А., д. 8', 'давно', 'да', '6', '18', '6'], ['ул. им. Героя Аверкиева А.А., д. 8/1 к. мая, кв. 268', 'давно', 'да', '0', '15', '5'], ['ул. им. Тургенева, д. 106', 'давно', 'да', '2', '96', '20'], ['ул. Красных Партизан, д. 117', 'вчера', 'нет', '0', '0', '0'], ['ул. Северная, д. 389', 'давно', 'да', '0', '16', '0'], ['ул. Уральская, д. 166/3', 'давно', 'да', '3', '43', '29'], ['ул. Северная, д. 524', 'давно', 'да', '3', '13', '4'], ['ул. им. Кирилла Россинского, д. 61/1', 'давно', 'да', '6', '19', '5'], ['ул. Коммунаров, д. 258', 'давно', 'да', '16', '45', '30'], ['ул. им. Дзержинского, д. 100', 'давно', 'да', '1', '19', '4'], ['ул. Северная, д. 326', 'давно', 'да', '3', '20', '9'], ['ул. им. 40-летия Победы, д. 34', 'вчера', 'нет', '0', '19', '0'], ['ул. Красная, д. 176', 'давно', 'да', '76', '82', '72'], ['ул. Уральская, д. 79/1', 'давно', 'да', '23', '32', '21'], ['ул. Северная, д. 326', 'давно', 'да', '4', '19', '4'], ['ул. Красная, д. 149', 'давно', 'да', '9', '10', '7'], ['п. Березовый, ул. Целиноградская, д. 6/1', 'вчера', 'нет', '0', '13', '0'], ['ул. им. Дзержинского, д. 100', 'вчера', 'нет', '0', '10', '0'], ['ул. Российская, д. 418', 'давно', 'да', '6', '30', '14'], ['ул. им. Володи Головатого, д. 313', 'давно', 'да', '6', '65', '12'], ['ул. Красная, д. 145', 'давно', 'да', '3', '20', '4'], ['ул. Красная, д. 154', 'вчера', 'нет', '0', '0', '0'],
['Краснодар, Красная, д. 139'],['Краснодар, В.Н. Мачуги, 41'],['Краснодар, Красных Партизан, 321']]:
if i[0] not in s:
print(i[0])
s.add(i[0])
ins,lon,lat = formatter(i)
addresses[i[0]] = (collection.insert_one(ins).inserted_id, (lon,lat))
print()
print(addresses)
print(len(s))
def mongo_specialists():
# Замените "your_connection_string" на строку подключения к вашему MongoDB
# Например: "mongodb://username:password@localhost:27017/mydatabase"
mongo_url = "mongodb://root:password@193.104.57.178:27017"
# Создайте подключение к базе данных
client = MongoClient(mongo_url)
# Выберите базу данных (используйте ваше собственное имя базы данных)
db = client["task-allocator"]
# Выберите коллекцию, в которую вы хотите добавить запись (используйте ваше собственное имя коллекции)
collection = db["specialists"]
def get_coord(address):
return r.get('https://geocode-maps.yandex.ru/1.x?apikey=c8ec1e5f-24db-4383-8ae8-5f597a09d4ad&'
f'geocode="{address}"&lang=ru&format=json&results=1').json()['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos']
addresses = {}
spe = {}
specs = [['Дерягин Никита Владимирович', 'Краснодар, Красная, д. 139', 'Синьор'], ['Петрошев Валерий Павлович', 'Краснодар, Красная, д. 139', 'Мидл'], ['Евдокимов Давид Тихонович', 'Краснодар, Красная, д. 139', 'Джун'], ['Андреев Гордий Данилович', 'Краснодар, В.Н. Мачуги, 41', 'Синьор'], ['Иванов Адам Федорович', 'Краснодар, В.Н. Мачуги, 41', 'Мидл'], ['Бобылёв Ипполит Альбертович', 'Краснодар, В.Н. Мачуги, 41', 'Джун'], ['Беляева Евгения Антоновна', 'Краснодар, Красных Партизан, 321', 'Мидл'], ['Николаев Азарий Платонович', 'Краснодар, Красных Партизан, 321', 'Джун']]
for spec in specs:
f,i,o = spec[0].split()
if spec[1] not in addresses:
lon,lat = get_coord(spec[1]).split()
addresses[spec[1]] = (lon,lat)
else:
lon,lat = addresses[spec[1]]
id_ = collection.insert_one({'firstName': u''.join(i),'lastName': u''.join(f),'fatherName': u''.join(o), 'email': '-',
"level": ['Джун', 'Мидл', 'Синьор'].index(spec[2]),
"address":
{ "latitude": lat,
"longitude": lon,
"address": u''.join(spec[1])
}}).inserted_id
spe[f"{f} {i} {o}"] = id_
print(spe)
def get_matrix(points): #lon,lat
print(f"len_poin = {len(points)}")
import csv
import requests
# Установите ваш ключ API GraphHopper
api_key = "477b9de4-c4f2-4e05-8eb8-aaff7cd2eb2d"
# Определите точки, между которыми вы хотите рассчитать матрицу времени проезда
s = "https://graphhopper.com/api/1/matrix?"
#with open('points_last.csv') as csvfile:
#reader = csv.DictReader(csvfile)
for i, (lon,lat) in enumerate(points):
if not i:
s += f"point={lat},{lon}"
else:
s += f"&point={lat},{lon}"
#times = [ [ 0, 408, 549, 1524, 1339, 985, 777, 232, 1279, 1587, 1038, 952, 517, 905, 336, 885, 840, 796, 1012, 917, 950, 778, 978, 481, 954, 474, 1499, 583, 815, 614, 651, 656, 684, 1984, 1505, 1114, 623, 636, 574 ], [ 467, 0, 190, 1980, 1795, 1002, 459, 699, 961, 1269, 720, 1132, 840, 1085, 565, 870, 522, 588, 694, 934, 967, 460, 660, 272, 1134, 407, 1334, 265, 606, 296, 831, 338, 367, 1666, 1187, 954, 305, 318, 215 ], [ 604, 153, 0, 1888, 1704, 886, 276, 731, 778, 1086, 537, 1041, 749, 994, 474, 727, 339, 476, 511, 843, 875, 277, 477, 217, 1043, 316, 1151, 147, 495, 113, 740, 155, 184, 1483, 1004, 771, 122, 135, 134 ], [ 1579, 1825, 1940, 0, 727, 2161, 2118, 1512, 2595, 2928, 2379, 1160, 1171, 1178, 1458, 2061, 2116, 2058, 2353, 2093, 2126, 2119, 2319, 1758, 1126, 1651, 2176, 1924, 2074, 1955, 1546, 1997, 2026, 2602, 2781, 2291, 1964, 1977, 1965 ], [ 1398, 1644, 1759, 698, 0, 1980, 1938, 1331, 2414, 2747, 2198, 912, 990, 929, 1277, 1880, 1935, 1877, 2172, 1912, 1945, 1938, 2139, 1577, 877, 1470, 1927, 1744, 1894, 1774, 1366, 1817, 1845, 2354, 2346, 2110, 1784, 1796, 1784 ], [ 1085, 1062, 965, 2197, 2012, 0, 1009, 1040, 1130, 1818, 999, 1349, 1058, 1302, 782, 224, 672, 578, 1209, 433, 465, 1012, 1210, 858, 1352, 742, 679, 865, 531, 847, 1049, 1005, 796, 1417, 1085, 375, 972, 842, 963 ], [ 923, 520, 414, 2255, 2070, 1056, 0, 1098, 651, 809, 475, 1407, 1116, 1361, 840, 897, 509, 646, 235, 1081, 1114, 144, 201, 584, 1410, 682, 1321, 492, 665, 390, 1107, 302, 339, 1494, 908, 940, 386, 385, 412 ], [ 240, 486, 627, 1535, 1350, 1063, 855, 0, 1357, 1665, 1116, 973, 528, 947, 415, 963, 918, 875, 1090, 995, 1028, 856, 1056, 559, 975, 553, 1578, 661, 893, 692, 729, 734, 763, 2062, 1583, 1193, 701, 714, 652 ], [ 1286, 843, 737, 2565, 2380, 1127, 571, 1408, 0, 1380, 393, 1717, 1425, 1670, 1150, 968, 580, 717, 658, 1152, 1185, 585, 772, 884, 1719, 945, 1117, 666, 736, 619, 1416, 743, 568, 919, 333, 737, 744, 613, 735 ], [ 1575, 1172, 1065, 2907, 2722, 1705, 793, 1750, 1351, 0, 1175, 2059, 1768, 2012, 1492, 1546, 1158, 1296, 878, 1731, 1763, 793, 576, 1236, 2061, 1334, 1970, 1156, 1314, 1040, 1758, 954, 989, 1998, 1516, 1590, 1038, 1034, 1064 ], [ 1105, 662, 556, 2384, 2199, 946, 422, 1227, 417, 1231, 0, 1536, 1245, 1489, 969, 787, 399, 536, 509, 971, 1004, 436, 623, 703, 1538, 764, 1211, 485, 555, 438, 1235, 540, 387, 1259, 673, 831, 563, 433, 554 ], [ 1044, 1157, 1139, 1178, 993, 1360, 1317, 972, 1794, 2127, 1578, 0, 663, 156, 760, 1260, 1315, 1257, 1552, 1292, 1325, 1318, 1518, 957, 34, 850, 1874, 1123, 1273, 1154, 514, 1196, 1224, 2233, 1980, 1490, 1163, 1176, 1164 ], [ 562, 808, 806, 1204, 1019, 1027, 984, 495, 1461, 1794, 1245, 629, 0, 603, 324, 927, 982, 924, 1219, 959, 992, 985, 1185, 624, 631, 517, 1542, 790, 940, 821, 412, 863, 892, 2126, 1647, 1157, 830, 843, 831 ], [ 997, 1110, 1092, 1200, 1015, 1313, 1270, 946, 1747, 2080, 1531, 154, 637, 0, 734, 1213, 1268, 1210, 1505, 1245, 1278, 1271, 1471, 910, 120, 803, 1828, 1076, 1226, 1107, 467, 1149, 1178, 2412, 1933, 1443, 1116, 1129, 1117 ], [ 467, 643, 624, 1415, 1230, 846, 803, 400, 1280, 1612, 1064, 714, 276, 685, 0, 746, 801, 743, 1038, 778, 811, 803, 1004, 442, 716, 335, 1360, 609, 759, 640, 431, 682, 710, 1945, 1466, 975, 649, 661, 649 ], [ 912, 838, 781, 2024, 1839, 159, 826, 867, 973, 1635, 816, 1176, 884, 1129, 609, 0, 448, 354, 1026, 259, 292, 828, 1027, 684, 1178, 557, 622, 682, 307, 664, 875, 822, 612, 1320, 928, 278, 789, 658, 780 ], [ 947, 496, 395, 2132, 1947, 608, 439, 975, 614, 1248, 429, 1284, 993, 1237, 717, 449, 0, 284, 639, 708, 741, 441, 640, 475, 1286, 512, 908, 295, 303, 277, 983, 435, 226, 1240, 761, 528, 402, 271, 393 ], [ 969, 616, 597, 2081, 1896, 518, 638, 924, 814, 1448, 629, 1233, 942, 1186, 666, 359, 335, 0, 838, 469, 501, 641, 839, 469, 1235, 461, 899, 495, 52, 476, 932, 634, 425, 1479, 1000, 519, 601, 471, 593 ], [ 1051, 648, 542, 2383, 2198, 1167, 269, 1226, 688, 926, 512, 1535, 1244, 1489, 968, 1008, 620, 757, 0, 1192, 1225, 270, 318, 712, 1538, 810, 1432, 632, 776, 516, 1235, 430, 465, 1530, 944, 1051, 514, 511, 540 ], [ 945, 918, 899, 2057, 1872, 315, 979, 900, 1154, 1788, 969, 1209, 918, 1162, 642, 215, 662, 472, 1179, 0, 52, 981, 1180, 717, 1211, 601, 829, 835, 425, 817, 908, 957, 766, 1535, 1142, 493, 924, 811, 924 ], [ 973, 946, 927, 2084, 1900, 342, 1006, 927, 1182, 1816, 996, 1237, 945, 1190, 669, 242, 690, 500, 1206, 52, 0, 1009, 1207, 745, 1239, 629, 856, 863, 453, 844, 936, 985, 793, 1562, 1170, 520, 952, 839, 952 ], [ 831, 428, 322, 2163, 1979, 964, 38, 1006, 558, 847, 382, 1316, 1024, 1269, 749, 805, 417, 554, 272, 989, 1022, 0, 239, 492, 1318, 591, 1229, 401, 573, 299, 1015, 210, 247, 1400, 815, 849, 295, 293, 320 ], [ 1027, 624, 518, 2359, 2174, 1157, 245, 1202, 803, 623, 628, 1511, 1220, 1464, 944, 998, 610, 748, 330, 1183, 1215, 246, 0, 688, 1513, 786, 1422, 608, 766, 492, 1210, 406, 441, 1646, 1060, 1042, 490, 487, 516 ], [ 652, 201, 182, 1875, 1690, 820, 361, 718, 862, 1170, 621, 1027, 736, 980, 460, 662, 423, 380, 595, 771, 804, 361, 562, 0, 1029, 302, 1201, 167, 398, 197, 726, 240, 268, 1567, 1088, 821, 207, 219, 207 ], [ 1033, 1160, 1141, 1144, 959, 1362, 1319, 966, 1796, 2129, 1580, 34, 657, 121, 754, 1262, 1317, 1259, 1554, 1294, 1327, 1320, 1520, 959, 0, 852, 1877, 1125, 1275, 1156, 516, 1198, 1227, 2199, 1982, 1492, 1165, 1178, 1166 ], [ 511, 345, 327, 1623, 1438, 645, 505, 466, 994, 1315, 766, 775, 483, 728, 208, 545, 515, 457, 740, 577, 609, 506, 706, 145, 777, 0, 1110, 311, 473, 342, 474, 384, 412, 1659, 1180, 730, 351, 364, 351 ], [ 1529, 1345, 1243, 2171, 1986, 732, 1287, 1484, 1105, 2097, 1277, 1689, 1502, 1746, 1226, 622, 948, 937, 1487, 880, 912, 1290, 1488, 1274, 1654, 1140, 0, 1144, 890, 1125, 1493, 1283, 1074, 1392, 1060, 519, 1250, 1120, 1241 ], [ 652, 201, 183, 1914, 1729, 840, 361, 757, 739, 1170, 512, 1066, 775, 1019, 499, 682, 294, 431, 596, 854, 886, 362, 562, 224, 1068, 341, 1105, 0, 449, 199, 765, 240, 148, 1438, 959, 725, 207, 193, 207 ], [ 943, 626, 607, 2055, 1870, 492, 649, 898, 824, 1458, 639, 1207, 915, 1160, 640, 333, 345, 142, 848, 442, 475, 651, 850, 479, 1209, 435, 873, 505, 0, 486, 906, 644, 435, 1489, 1010, 493, 611, 481, 603 ], [ 713, 269, 163, 1990, 1805, 791, 229, 833, 683, 1039, 442, 1142, 850, 1095, 575, 632, 244, 382, 464, 817, 849, 232, 430, 310, 1144, 417, 1056, 161, 400, 0, 841, 203, 89, 1388, 909, 676, 170, 40, 161 ], [ 674, 787, 769, 1611, 1426, 990, 947, 664, 1424, 1757, 1208, 566, 472, 519, 414, 890, 945, 887, 1182, 922, 955, 948, 1148, 587, 568, 480, 1504, 753, 903, 784, 0, 826, 854, 2089, 1610, 1120, 793, 806, 793 ], [ 661, 218, 112, 1953, 1768, 913, 245, 796, 770, 1054, 529, 1105, 814, 1059, 538, 754, 366, 503, 479, 907, 940, 245, 446, 282, 1108, 380, 1178, 190, 522, 140, 805, 0, 199, 1510, 1027, 798, 84, 162, 110 ], [ 719, 275, 169, 1995, 1811, 824, 235, 838, 688, 1044, 447, 1148, 856, 1101, 581, 665, 277, 414, 470, 849, 882, 238, 436, 316, 1150, 423, 1089, 167, 433, 51, 847, 209, 0, 1421, 945, 709, 176, 46, 167 ], [ 1819, 1368, 1266, 2404, 2219, 1173, 1254, 1851, 684, 1750, 1076, 1922, 1868, 1939, 1593, 1028, 971, 1156, 1342, 1287, 1320, 1269, 1455, 1346, 1887, 1384, 1149, 1166, 1170, 1148, 1859, 1306, 1097, 0, 808, 768, 1273, 1142, 1264 ], [ 1625, 1182, 1076, 2616, 2431, 1137, 910, 1683, 339, 1507, 732, 1992, 1700, 1945, 1425, 978, 808, 992, 997, 1237, 1270, 924, 1111, 1182, 1994, 1220, 1135, 1005, 1006, 958, 1691, 1082, 907, 938, 0, 755, 1083, 952, 1074 ], [ 1170, 943, 841, 2282, 2097, 447, 886, 1125, 755, 1695, 876, 1434, 1142, 1387, 867, 302, 547, 535, 1085, 561, 594, 888, 1087, 872, 1436, 739, 422, 742, 489, 723, 1133, 881, 672, 1042, 710, 0, 848, 718, 840 ], [ 693, 250, 143, 1985, 1800, 961, 347, 828, 853, 1156, 612, 1137, 846, 1090, 570, 802, 414, 551, 581, 939, 972, 347, 548, 314, 1139, 412, 1226, 238, 570, 188, 836, 223, 258, 1558, 1079, 846, 0, 210, 142 ], [ 777, 333, 227, 2054, 1869, 877, 225, 897, 679, 1035, 438, 1206, 914, 1159, 639, 718, 330, 468, 460, 902, 935, 228, 426, 374, 1208, 481, 1142, 242, 486, 160, 905, 211, 109, 1474, 936, 762, 201, 0, 225 ], [ 649, 198, 45, 1933, 1748, 931, 321, 776, 823, 1130, 582, 1085, 794, 1038, 518, 772, 384, 521, 556, 887, 920, 321, 522, 262, 1088, 360, 1196, 192, 540, 158, 785, 200, 228, 1528, 1049, 815, 167, 179, 0 ] ]
times_matrix = {}
#for i in range(len(points)):
# for j in range(i+1, len(points)):
# times_matrix[(points[i], points[j])] = (times[i][j], True)
s += "&type=json&profile=car&out_array=times&out_array=distances&key=477b9de4-c4f2-4e05-8eb8-aaff7cd2eb2d"
print(s)
matrix = {"distances":[[0,3726,13937,4787,20756,11344,8146,7919,1486,11657,21288,8838,8476,5146,4972,8191,6857,9905,7325,7325,7785,11222,4212,8553,4302,11863,5365,6339,7001,5917,6666,19308,10479,5636,6054,4807,6122,7124,9093],[4507,0,10555,1184,24561,15149,8342,4536,5994,8275,17906,5456,10270,6940,7744,9985,4597,6523,7521,7521,4402,7840,1952,10347,2474,11602,1983,2956,4741,2534,3284,15925,9331,2254,2672,1204,2740,10929,5711],[13691,9253,0,8333,46156,36744,9512,7011,14288,1901,20525,4702,17427,14098,14902,17142,8441,6861,9984,9984,7105,10315,9972,17504,10198,8562,7496,8853,8311,7191,6753,7141,6291,8075,7073,8079,7140,18087,8185],[5704,1269,9088,0,24164,14752,6895,3070,6733,6809,16439,3989,9873,6543,7347,9588,4449,5057,7124,7124,2936,6374,1559,9950,2077,10136,1244,1490,4593,1068,1817,14459,7865,787,1206,737,1273,10532,4244],[21435,23504,31352,24462,0,10627,25233,26807,20302,29989,40176,27726,15759,19172,16902,15938,24747,28794,24412,24412,26673,30111,22702,15592,22521,31636,24253,25227,24812,24805,25554,43973,27566,24524,24942,24482,25010,15116,27981],[11988,14057,35901,15015,10653,0,15786,17359,10854,20541,30729,18279,7261,9724,7454,7440,15300,19346,14964,14964,17226,20663,13255,7095,13073,23138,14806,15779,15364,15357,16107,35475,18119,15077,15495,15035,15563,5668,18534],[8955,8619,9018,8649,25403,15992,0,8911,7973,10742,22280,8105,11112,7783,8587,10827,4265,9542,2158,2158,8810,12215,6956,11189,6775,4083,7424,9094,3948,7507,7069,11365,2676,8391,7389,8395,7456,11771,10085],[8825,4854,7136,3935,27749,18337,8076,0,10319,5883,13369,3229,13458,10128,10932,13173,5629,1987,8355,8355,1170,3304,5144,13535,5662,11316,4494,2917,5773,3235,2798,13280,9045,3320,3117,3680,3185,14117,1174],[1892,3961,14172,5022,20309,10897,8381,8153,0,11892,21522,9073,8441,5381,4525,8318,7092,10140,7559,7559,8019,11457,4447,8518,4536,12097,5600,6573,7236,6151,6901,19542,10714,5870,6289,5042,6357,6677,9327],[11790,7352,1914,6432,29324,19912,8492,5109,11893,0,18479,2801,15032,11703,12507,14747,6046,4960,8772,8772,5204,8413,7360,15109,7792,9480,5595,6951,6190,5290,4852,8058,7209,6174,5172,6178,5239,15692,6284],[21553,17583,20651,16663,40478,31066,20769,13996,23047,19111,0,16458,26186,22857,23661,25902,18322,13475,21048,21048,13862,10354,17873,26264,18391,24009,16351,15646,18466,15928,15490,26048,21738,16049,15810,16409,15877,26846,12663],[9726,5288,4561,4368,27259,17847,6428,3151,9828,3308,16520,0,12968,9638,10442,12683,3982,3002,6707,6707,3246,6455,5296,13045,5728,9668,3530,3848,4125,3225,2788,10706,7398,4109,3107,4113,3175,13627,4325],[9163,10591,17278,10389,18537,9125,11160,12733,8387,15915,26103,13653,0,3930,5383,1091,10674,14720,10338,10338,12600,16037,8629,167,8447,14876,10180,11153,10738,10731,11481,34710,13493,10451,10869,10409,10937,5350,13908],[5682,7109,13797,6908,19458,10046,7678,9252,5013,12434,22621,10171,3822,0,3444,3537,7192,11239,6857,6857,9118,12556,5148,3899,4966,11395,6699,7672,7257,7250,7999,19168,10012,6969,7388,6928,7455,5455,10426],[5468,7536,14509,7620,17039,7628,8390,9964,4334,13146,23333,10883,5092,2329,0,4969,7904,11951,7569,7569,9830,13268,5860,5169,5678,12107,7411,8384,7969,7962,8711,19880,10724,7681,8100,7640,8168,3407,11138],[8878,10306,16993,10104,18770,9358,10875,12448,8264,15630,25818,13368,1082,3645,5260,0,10389,14435,10053,10053,12315,15752,8344,915,8163,14591,9895,10868,10453,10446,11196,22364,13208,10166,10584,10124,10652,5326,13623],[8339,5030,8489,4828,24788,15376,3713,5543,7357,7126,18913,4738,10496,7167,7971,10211,0,6174,2853,2853,5442,8847,3428,10573,3654,6976,4056,5726,271,4139,3702,13860,4705,5023,4021,5027,4089,11156,6718],[10110,6140,6895,5220,29035,19623,8021,2553,11604,5642,13396,2988,14743,11414,12218,14459,5575,0,8301,8301,2419,3331,6430,14821,6948,11261,4908,4203,5719,4485,4047,13039,8991,4606,4367,4966,4434,15403,1201],[7807,7770,9589,7568,24256,14844,1473,8080,6825,9662,21449,7274,9964,6635,7439,9679,3211,8710,0,0,7978,11384,5809,10041,5627,5190,6592,8333,2895,6675,6238,12518,3830,7630,6557,7588,6625,10624,9254],[7807,7770,9589,7568,24256,14844,1473,8080,6825,9662,21449,7274,9964,6635,7439,9679,3211,8710,0,0,7978,11384,5809,10041,5627,5190,6592,8333,2895,6675,6238,12518,3830,7630,6557,7588,6625,10624,9254],[8204,4234,6502,3314,27129,17717,7455,454,9698,5249,13823,2596,12837,9508,10312,12552,5009,2441,7734,7734,0,3758,4524,12914,5041,10695,3873,2296,5153,2614,2177,12647,8425,2699,2496,3059,2564,13497,1628],[11543,7573,10355,6653,30468,21056,10758,3986,13037,9101,10184,6448,16176,12847,13651,15891,8312,3465,11038,11038,3852,0,7863,16253,8380,13998,6341,5635,8456,5918,5480,16499,11728,6039,5799,6398,5867,16836,2652],[6396,1961,10123,1760,23611,14199,6553,4104,6180,7843,17473,5023,9320,5990,6794,9035,3043,6091,5692,5692,3970,7408,0,9397,1524,9816,1551,2524,3187,2102,2851,15493,7545,1821,2240,1780,2308,9979,5278],[9789,10668,17356,10466,18371,8959,11237,12811,8655,15993,26180,13730,167,4008,5651,924,10751,14798,10416,10416,12677,16115,8706,0,8525,14954,10257,11231,10816,10809,11558,34543,13570,10528,10946,10486,11014,5183,13985],[5639,3619,10711,3418,22087,12676,5868,5762,4657,9349,19131,6681,7796,4467,5270,7511,4107,7749,5047,5047,5628,9066,1658,7873,0,9854,3209,4182,4251,3760,4509,16082,7583,3479,3898,3438,3966,8455,6936],[12154,11014,8007,10527,33127,23715,4453,10789,11171,9731,24158,9983,20299,10981,11785,14026,7021,11419,5352,5352,10687,14093,9773,20132,10000,0,9301,10971,6705,9384,8947,10340,3095,10268,9266,10272,9334,14970,11963],[6148,1713,8291,1512,24254,14842,6098,3856,6823,6711,17225,3750,9963,6633,7437,9678,3652,5843,6348,6348,3722,7160,1619,10040,2167,9338,0,2276,3795,1679,1241,13662,7067,1573,1561,1531,1628,10622,5030],[6375,1937,7714,1018,24832,15421,7016,2739,7402,6461,16109,3641,10541,7212,8015,10256,4569,4726,7792,7792,2606,6043,2227,10618,2745,10256,1577,0,4713,1189,1518,14580,7985,403,1326,763,1394,11200,3914],[8086,5196,8655,4995,24534,15122,3460,5710,7104,7292,19079,4904,10243,6914,7717,9958,842,6341,2600,2600,5609,9014,3594,10320,3821,6723,4223,5893,0,4306,3868,14026,4452,5190,4188,5194,4255,10902,6884],[6807,2369,8071,1449,24897,15485,5878,2064,7466,5792,15433,2972,10605,7276,8080,10320,3432,4051,6157,6157,1963,5368,2377,10683,2810,9118,730,1894,3576,0,800,13442,6848,1191,189,1195,256,11265,3238],[6938,2500,6798,1580,25028,15616,6265,2195,7597,5544,15564,2725,10736,7407,8211,10451,3818,4182,6544,6544,2093,5499,2508,10813,2940,9505,861,2024,3962,437,0,13829,7234,1322,319,1325,387,11396,3369],[19024,14589,8344,14101,44284,34872,11246,12020,17984,6910,24138,9711,31456,17794,18597,31635,12762,11871,12146,12146,12114,15324,14293,31289,14520,10572,12876,14546,12632,12959,12521,0,8301,13843,12841,13847,12908,21782,13194],[11058,9021,6341,8534,27506,18094,3338,8795,10075,8066,22165,7990,13214,9885,10689,12929,5028,9426,4238,4238,8694,12099,7780,13292,8007,2663,7308,8978,4711,7391,6954,8688,0,8275,7273,8279,7341,13874,9970],[6192,1754,9344,834,24649,15237,7151,3178,7218,7065,16547,4245,10357,7028,7832,10072,4705,5165,7609,7609,3044,6482,2044,10435,2562,10391,1712,1501,4849,1324,2073,14715,8121,0,1462,580,1529,11017,4352],[7066,2628,6956,1708,25156,15744,6349,1975,7725,5703,15344,2883,10864,7535,8339,10580,3903,3962,6628,6628,1874,5279,2637,10942,3069,9589,1766,1652,4047,1197,760,13913,7319,1103,0,1454,1147,11524,3149],[5878,1443,9262,174,24338,14926,7069,3244,6907,6983,16613,4163,10046,6717,7521,9761,4623,5231,7298,7298,3110,6548,1733,10124,2251,10309,1418,1664,4767,1242,1991,14633,8039,961,1380,0,1447,10706,4418],[6551,2113,8882,1193,24641,15229,6689,3217,7210,6603,16587,3783,10349,7020,7824,10064,4243,5204,6968,6968,3083,6521,2121,10426,2553,9929,1250,1637,4387,862,1611,14253,7659,934,1000,938,0,11009,4392],[6320,8388,16236,9347,16066,6654,10117,11691,5186,14873,25060,12610,5306,4056,1786,5182,9631,13678,9296,9296,11557,14995,7587,5383,7405,13834,9137,10111,9696,9689,10438,21607,12450,9408,9827,9366,9894,0,12865],[9666,5696,8478,4776,28591,19179,8881,2109,11160,7224,12252,4571,14299,10970,11774,14014,6435,1145,9161,9161,1975,2187,5986,14377,6504,12122,4464,3758,6579,4041,3603,14622,9851,4162,3923,4522,3990,14959,0]],"times":[[0,408,1505,549,1524,1339,985,777,249,1279,1587,1038,952,634,517,905,796,1012,917,917,778,978,481,954,476,1499,583,656,815,614,684,1984,1114,623,636,574,629,702,851],[467,0,1187,190,1980,1795,1002,459,716,961,1269,720,1132,814,840,1085,588,694,934,934,460,660,272,1134,276,1334,265,338,606,296,367,1666,954,305,318,215,311,1158,533],[1625,1182,0,1076,2616,2431,1137,910,1699,339,1507,732,1992,1674,1700,1945,992,997,1237,1237,924,1111,1182,1994,1179,1135,1005,1082,1006,958,907,938,755,1083,952,1074,946,2018,984],[604,153,1004,0,1888,1704,886,276,748,778,1086,537,1041,723,749,994,476,511,843,843,277,477,217,1043,184,1151,147,155,495,113,184,1483,771,122,135,134,128,1067,350],[1579,1825,2781,1940,0,727,2161,2118,1528,2595,2928,2379,1160,1529,1171,1178,2058,2353,2093,2093,2119,2319,1758,1126,1778,2176,1924,1997,2074,1955,2026,2602,2291,1964,1977,1965,1970,972,2192],[1398,1644,2346,1759,698,0,1980,1938,1347,2414,2747,2198,912,1349,990,929,1877,2172,1912,1912,1938,2139,1577,877,1597,1927,1744,1817,1894,1774,1845,2354,2110,1784,1796,1784,1789,791,2011],[1085,1062,1085,965,2197,2012,0,1009,1057,1130,1818,999,1349,1032,1058,1302,578,1209,433,433,1012,1210,858,1352,878,679,865,1005,531,847,796,1417,375,972,842,963,835,1375,1083],[923,520,908,414,2255,2070,1056,0,1115,651,809,475,1407,1090,1116,1361,646,235,1081,1081,144,201,584,1410,551,1321,492,302,665,390,339,1494,940,386,385,412,378,1434,74],[257,503,1600,644,1552,1367,1080,872,0,1374,1681,1133,990,729,544,964,891,1107,1012,1012,872,1073,576,992,571,1594,678,751,910,709,779,2079,1209,718,730,668,724,730,946],[1286,843,333,737,2565,2380,1127,571,1424,0,1380,393,1717,1399,1425,1670,717,658,1152,1152,585,772,884,1719,859,1117,666,743,736,619,568,919,737,744,613,735,606,1743,645],[1575,1172,1516,1065,2907,2722,1705,793,1767,1351,0,1175,2059,1741,1768,2012,1296,878,1731,1731,793,576,1236,2061,1203,1970,1156,954,1314,1040,989,1998,1590,1038,1034,1064,1028,2085,717],[1105,662,673,556,2384,2199,946,422,1244,417,1231,0,1536,1218,1245,1489,536,509,971,971,436,623,703,1538,678,1211,485,540,555,438,387,1259,831,563,433,554,426,1562,496],[1044,1157,1980,1139,1178,993,1360,1317,989,1794,2127,1578,0,523,663,156,1257,1552,1292,1292,1318,1518,957,34,977,1874,1123,1196,1273,1154,1224,2233,1490,1163,1176,1164,1169,673,1391],[683,796,1619,777,1583,1398,999,956,689,1433,1765,1217,523,0,444,476,896,1191,931,931,957,1157,596,525,616,1513,762,835,912,793,863,2098,1129,802,815,802,808,722,1030],[562,808,1647,806,1204,1019,1027,984,512,1461,1794,1245,629,395,0,603,924,1219,959,959,985,1185,624,631,644,1542,790,863,940,821,892,2126,1157,830,843,831,836,382,1058],[997,1110,1933,1092,1200,1015,1313,1270,963,1747,2080,1531,154,476,637,0,1210,1505,1245,1245,1271,1471,910,120,930,1828,1076,1149,1226,1107,1178,2412,1443,1116,1129,1117,1122,669,1344],[969,616,1000,597,2081,1896,518,638,941,814,1448,629,1233,915,942,1186,0,838,469,469,641,839,469,1235,466,899,495,634,52,476,425,1479,519,601,471,593,464,1259,712],[1051,648,944,542,2383,2198,1167,269,1243,688,926,512,1535,1218,1244,1489,757,0,1192,1192,270,318,712,1538,679,1432,632,430,776,516,465,1530,1051,514,511,540,504,1562,191],[945,918,1142,899,2057,1872,315,979,917,1154,1788,969,1209,891,918,1162,472,1179,0,0,981,1180,717,1211,738,829,835,957,425,817,766,1535,493,924,811,924,805,1235,1053],[945,918,1142,899,2057,1872,315,979,917,1154,1788,969,1209,891,918,1162,472,1179,0,0,981,1180,717,1211,738,829,835,957,425,817,766,1535,493,924,811,924,805,1235,1053],[831,428,815,322,2163,1979,964,38,1023,558,847,382,1316,998,1024,1269,554,272,989,989,0,239,492,1318,459,1229,401,210,573,299,247,1400,849,295,293,320,286,1342,112],[1027,624,1060,518,2359,2174,1157,245,1219,803,623,628,1511,1193,1220,1464,748,330,1183,1183,246,0,688,1513,655,1422,608,406,766,492,441,1646,1042,490,487,516,480,1537,169],[652,201,1088,182,1875,1690,820,361,735,862,1170,621,1027,709,736,980,380,595,771,771,361,562,0,1029,171,1201,167,240,398,197,268,1567,821,207,219,207,212,1053,435],[1033,1160,1982,1141,1144,959,1362,1319,983,1796,2129,1580,34,525,657,121,1259,1554,1294,1294,1320,1520,959,0,979,1877,1125,1198,1275,1156,1227,2199,1492,1165,1178,1166,1171,639,1393],[592,418,1258,400,1704,1519,726,578,564,1072,1388,839,856,539,565,809,535,813,658,658,579,779,218,858,0,1192,384,457,553,415,486,1737,812,424,437,425,430,882,652],[1529,1345,1060,1243,2171,1986,732,1287,1501,1105,2097,1277,1689,1476,1502,1746,937,1487,880,880,1290,1488,1274,1654,1271,0,1144,1283,890,1125,1074,1392,519,1250,1120,1241,1113,1819,1361],[652,201,959,183,1914,1729,840,361,774,739,1170,512,1066,749,775,1019,431,596,854,854,362,562,224,1068,210,1105,0,240,449,199,148,1438,725,207,193,207,187,1092,435],[661,218,1027,112,1953,1768,913,245,813,770,1054,529,1105,788,814,1059,503,479,907,907,245,446,282,1108,249,1178,190,0,522,140,199,1510,798,84,162,110,155,1132,319],[943,626,1010,607,2055,1870,492,649,914,824,1458,639,1207,889,915,1160,142,848,442,442,651,850,479,1209,476,873,505,644,0,486,435,1489,493,611,481,603,474,1233,722],[713,269,909,163,1990,1805,791,229,849,683,1039,442,1142,824,850,1095,382,464,817,817,232,430,310,1144,286,1056,161,203,400,0,89,1388,676,170,40,161,33,1168,303],[719,275,945,169,1995,1811,824,235,855,688,1044,447,1148,830,856,1101,414,470,849,849,238,436,316,1150,291,1089,167,209,433,51,0,1421,709,176,46,167,39,1174,309],[1819,1368,808,1266,2404,2219,1173,1254,1867,684,1750,1076,1922,1842,1868,1939,1156,1342,1287,1287,1269,1455,1346,1887,1343,1149,1166,1306,1170,1148,1097,0,768,1273,1142,1264,1136,2186,1328],[1170,943,710,841,2282,2097,447,886,1141,755,1695,876,1434,1116,1142,1387,535,1085,561,561,888,1087,872,1436,869,422,742,881,489,723,672,1042,0,848,718,840,711,1460,959],[693,250,1079,143,1985,1800,961,347,845,853,1156,612,1137,819,846,1090,551,581,939,939,347,548,314,1139,281,1226,238,223,570,188,258,1558,846,0,210,142,203,1163,420],[777,333,936,227,2054,1869,877,225,913,679,1035,438,1206,888,914,1159,468,460,902,902,228,426,374,1208,349,1142,242,211,486,160,109,1474,762,201,0,225,147,1232,299],[649,198,1049,45,1933,1748,931,321,793,823,1130,582,1085,768,794,1038,521,556,887,887,321,522,262,1088,229,1196,192,200,540,158,228,1528,815,167,179,0,172,1111,395],[680,237,985,130,1957,1772,867,291,816,759,1101,518,1109,791,818,1062,458,526,893,893,292,492,277,1111,253,1132,145,170,476,94,165,1464,752,137,116,128,0,1135,365],[607,853,1809,968,1068,883,1190,1147,557,1624,1956,1407,650,558,199,624,1087,1381,1121,1121,1147,1348,786,653,806,1704,953,1026,1103,984,1054,2288,1319,993,1005,993,998,0,1221],[970,567,1003,461,2302,2117,1100,188,1162,746,746,571,1454,1136,1163,1407,691,222,1126,1126,189,137,631,1456,598,1365,551,349,709,435,384,1589,985,433,430,459,423,1480,0]]}
matrix = matrix['times']
ids = ['654aa10dbff6a11489a510ef', '654aa10ebff6a11489a510f0', '654aa10ebff6a11489a510f1', '654aa10ebff6a11489a510f2', '654aa10ebff6a11489a510f3', '654aa112bff6a11489a510f4', '654aa113bff6a11489a510f5', '654aa114bff6a11489a510f6', '654aa114bff6a11489a510f7', '654aa114bff6a11489a510f8', '654aa115bff6a11489a510f9', '654aa115bff6a11489a510fa', '654aa115bff6a11489a510fb', '654aa115bff6a11489a510fc', '654aa115bff6a11489a510fd', '654aa115bff6a11489a510fe', '654aa116bff6a11489a510ff', '654aa117bff6a11489a51100', '654aa118bff6a11489a51101', '654aa119bff6a11489a51102', '654aa119bff6a11489a51103', '654aa119bff6a11489a51104', '654aa119bff6a11489a51105', '654aa119bff6a11489a51106', '654aa11abff6a11489a51107', '654aa11abff6a11489a51108', '654aa11abff6a11489a51109', '654aa11bbff6a11489a5110a', '654aa11bbff6a11489a5110b', '654aa11bbff6a11489a5110c', '654aa11bbff6a11489a5110d', '654aa11cbff6a11489a5110e', '654aa11cbff6a11489a5110f', '654aa11cbff6a11489a51110', '654aa11cbff6a11489a51111', '654aa11cbff6a11489a51112', '654aa11dbff6a11489a51113', '654aa11dbff6a11489a51114', '654aa11dbff6a11489a51115']
print(len(matrix), len(matrix[0]), len(ids))
# Замените "your_connection_string" на строку подключения к вашему MongoDB
# Например: "mongodb://username:password@localhost:27017/mydatabase"
mongo_url = "mongodb://root:password@193.104.57.178:27017"
# Создайте подключение к базе данных
client = MongoClient(mongo_url)
# Выберите базу данных (используйте ваше собственное имя базы данных)
db = client["task-allocator"]
# Выберите коллекцию, в которую вы хотите добавить запись (используйте ваше собственное имя коллекции)
collection = db["from_to_in_minutes"]
fr_to_minutes = {}
fr_inner_dict_to_minutes = {}
for i in range(len(ids)):
for j in range(i+1, len(ids)):
from_id, to_id, minutes = ids[i], ids[j], matrix[i][j]
fr_to_minutes[(from_id, to_id)] = minutes
if from_id not in fr_inner_dict_to_minutes:
fr_inner_dict_to_minutes[from_id] = {}
fr_inner_dict_to_minutes[from_id][to_id] = minutes
id_ = collection.insert_one({'from': from_id, 'to': to_id, 'minutes': minutes/60}).inserted_id
def generate_table_with_minutes():
d = {'ул. Ставропольская, д. 140': (('654aa10dbff6a11489a510ef'), ('39.003879', '45.019844')), 'ул. им. Максима Горького, д. 128': (('654aa10ebff6a11489a510f0'), ('38.979517', '45.030113')), 'ул. им. Дзержинского, д. 100': (('654aa10ebff6a11489a510f1'), ('38.983856', '45.102209')), 'ул. Красноармейская, д. 126': (('654aa10ebff6a11489a510f2'), ('38.977244', '45.037961')), 'х. Ленина, п/о. 37': (('654aa10ebff6a11489a510f3'), ('39.242822', '45.036904')), 'тер. Пашковский жилой массив, ул. Крылатая, д. 2': (('654aa112bff6a11489a510f4'), ('39.122574', '45.01144')), 'ул. Восточно-Кругликовская, д. 64/2': (('654aa113bff6a11489a510f5'), ('39.025637', '45.068257')), 'ул. Красных Партизан, д. 439': (('654aa114bff6a11489a510f6'), ('38.956475', '45.051538')), 'ул. Таманская, д. 153 к. 3, кв. 2': (('654aa114bff6a11489a510f7'), ('39.012809', '45.023609')), 'ул. им. Дзержинского, д. 165': (('654aa114bff6a11489a510f8'), ('38.976481', '45.090285')), 'ст-ца. Елизаветинская, ул. Широкая, д. 260': (('654aa115bff6a11489a510f9'), ('38.803393', '45.049488')), 'ул. им. Тургенева, д. 174, 1 этаж': (('654aa115bff6a11489a510fa'), ('38.970211', '45.069792')), 'ул. Уральская, д. 162': (('654aa115bff6a11489a510fb'), ('39.094052', '45.038534')), 'ул. Уральская, д. 79/1': (('654aa115bff6a11489a510fc'), ('39.051463', '45.035273')), 'ул. им. Селезнева, д. 197/5': (('654aa115bff6a11489a510fd'), ('39.054428', '45.016556')), 'ул. Уральская, д. 117': (('654aa115bff6a11489a510fe'), ('39.091735', '45.039203')), 'ул. им. 40-летия Победы, д. 20/1': (('654aa116bff6a11489a510ff'), ('39.001418', '45.054767')), 'ул. им. Атарбекова, д. 24': (('654aa117bff6a11489a51100'), ('38.949172', '45.059128')), 'ул. им. Героя Аверкиева А.А., д. 8': (('654aa118bff6a11489a51101'), ('39.029266', '45.060211')), 'ул. им. Героя Аверкиева А.А., д. 8/1 к. мая, кв. 268': (('654aa119bff6a11489a51102'), ('39.029266', '45.060211')), 'ул. им. Тургенева, д. 106': (('654aa119bff6a11489a51103'), ('38.959835', '45.052175')), 'ул. Красных Партизан, д. 117': (('654aa119bff6a11489a51104'), ('38.919267', '45.063381')), 'ул. Северная, д. 389': (('654aa119bff6a11489a51105'), ('38.993378', '45.037706')), 'ул. Уральская, д. 166/3': (('654aa119bff6a11489a51106'), ('39.095624', '45.038942')), 'ул. Северная, д. 524': (('654aa11abff6a11489a51107'), ('39.000753', '45.035935')), 'ул. им. Кирилла Россинского, д. 61/1': (('654aa11abff6a11489a51108'), ('39.036991', '45.088866')), 'ул. Коммунаров, д. 258': (('654aa11abff6a11489a51109'), ('38.981691', '45.043693')), 'ул. Северная, д. 326': (('654aa11bbff6a11489a5110a'), ('38.970795', '45.040445')), 'ул. им. 40-летия Победы, д. 34': (('654aa11bbff6a11489a5110b'), ('39.003736', '45.054684')), 'ул. Красная, д. 176': (('654aa11bbff6a11489a5110c'), ('38.978915', '45.046463')), 'ул. Красная, д. 149': (('654aa11bbff6a11489a5110d'), ('38.978161', '45.048348')), 'п. Березовый, ул. Целиноградская, д. 6/1': (('654aa11cbff6a11489a5110e'), ('38.998561', '45.145759')), 'ул. Российская, д. 418': (('654aa11cbff6a11489a5110f'), ('39.014929', '45.085277')), 'ул. им. Володи Головатого, д. 313': (('654aa11cbff6a11489a51110'), ('38.974307', '45.039464')), 'ул. Красная, д. 145': (('654aa11cbff6a11489a51111'), ('38.977685', '45.046718')), 'ул. Красная, д. 154': (('654aa11cbff6a11489a51112'), ('38.975636', '45.037165')), 'Краснодар, Красная, д. 139': (('654aa11dbff6a11489a51113'), ('38.977047', '45.04496')), 'Краснодар, В.Н. Мачуги, 41': (('654aa11dbff6a11489a51114'), ('39.071711', '45.012835')), 'Краснодар, Красных Партизан, 321': (('654aa11dbff6a11489a51115'), ('38.941986', '45.053773'))}
points = []#(float(i[1][0]), float(i[1][1])) for i in d.values()]
fr_to = {}
k = list(d.keys())
print(len(k))
ids = []
for i in range(len(k)):
#for j in range(i+1, len(k)):
v = d[k[i]]
points.append((float(v[1][0]), float(v[1][1])))
ids.append(v[0])
fr_to[(float(v[1][0]), float(v[1][1]))] = 1
print(f"ids = {ids}")
get_matrix(points) #lon,lat
#fr[]collection.insert_one(ins).inserted_id
generate_table_with_minutes()