У меня есть большие базы данных, для которых я использую SQL-запрос в Python для записи данных в CSV-файлы.В базе данных sql каждая строка представляет собой последовательность пространственной информации для идентификатора пальца.Я могу параметризовать запрос, чтобы получить информацию и записать нужные мне файлы для каждого пальца.Однако проблема возникает при создании функционала цикла for, который выполняет итерацию по каждому идентификатору для всех индексов в списке.
INDEX = ([44,48,50,55,56,57], [49,54,57,61,62,64])
FINGER = ('rt100', 'rt101')
d = {}
newdf = {}
for Y in FINGER:
for X in INDEX:
for x in X:
d[x] = pd.read_sql ("SELECT x,y, CAST( (direction*180/3.142)as INT),CAST(quality*100 as INT) from UTS_7_fingerprints where finger like ? and ind = ?", conn, params=(Y,x))
newdf[Y] = pd.concat(d)
Приведенный выше скрипт выполняет запрос sql и успешно создает словарь объединенных структур данных.Однако для каждого значения FINGER выполняется итерация по всему списку INDEX.
Выглядит так:
{'rt100': finger ind ... CAST( (direction*180/3.142)as INT) CAST(quality*100 as INT)
44 0 rt100 44 ... 281 93
48 0 rt100 48 ... 303 32
49 0 rt100 49 ... 281 13
50 0 rt100 50 ... 123 82
54 0 rt100 54 ... 281 14
55 0 rt100 55 ... 314 67
56 0 rt100 56 ... 123 88
57 0 rt100 57 ... 314 71
61 0 rt100 61 ... 326 11
Это пример для одного из значений FINGER.Мне нужно, чтобы он повторял только [44,48,50,55,56,57] для 'rt100' и [49,54,57,61,62,64] для 'rt101'.В настоящее время он перебирает все значения в INDEX.В действительности у меня есть много подобных соответствий, следовательно, потребность в запросе, который принимает эти параметры.
Чтобы быть более конкретным, я ищу способ ограничить выполнение этого цикла, чтобы написать каждый запрос длякаждый FINGER и INDEX для разделения файлов .csv, которые выглядят следующим образом:
372,402,281,83
394,303,303,97
415,422,123,86
458,328,292,95
464,487,112,96
483,389,303,95
Где каждая строка является информацией:
'x,y, CAST( (direction*180/3.142)as INT),CAST(quality*100 as INT'
для каждого INDEX в каждом FINGER.