Вот моя проблема.У меня есть куча данных, организованных так:
(bad_table)
Имя ....... Вещи ...... Количество
Дейв ........ Дома ....... 1
Боб ..........Автомобили ............ 2
Джефф ........... Лодки .......... 1
Боб .......... Дома ....... 1
Дейв ........ Дети ............ 3
Джефф .......... Автомобили ............ 3
И я бы хотел, чтобы все было организовано так:
(good_table)
Имя ..... Дома ....... Лодки ..... Автомобили
Дейв ........... 1 ................ 0 ............. 0
Боб ............. 1 ................ 0 ............. 2
Джефф.............. 0 ................ 1 ............. 3
Это упрощено;Я на самом деле хотел бы сделать таблицу с сотнями вещей / столбцов, но вы поняли идею.Мой подход состоял в том, чтобы создать таблицу good_table со столбцами для Name, Houses, Boats, Cars и строками для Dave, Bob и Jeff, но без заполнения других значений. Затем для каждого Name я бы создал список кортежей (Iдумать) из оригинальной bad_table, говоря, например,
Items = cur.execute(“SELECT Thing, Count FROM bad_table WHERE Name = Dave”)
, который дает мне «Предметы», которые выглядят как [('Houses', 1), ('Boats', 0), ('Cars, 0), («Дети», 3)].Тогда я бы сказал:
For item in Items:
Thing = item[0]
Count = item[1]
cur.execute(“INSERT INTO good_table ? = ? WHERE Name = Dave”, (Thing, Count))
Который, я думаю, должен был бы в первую очередь перевести на
“INSERT INTO good_table Houses = 1 WHERE Name = Dave”
Это не вызывает никаких ошибок при запуске, но этотакже на самом деле ничего не вставляет в мою good_table.Я также попытался запустить его с
(“UPDATE good_table SET ? = ? WHERE Name = Dave”, (Name, Count))
на тот случай, если проблема заключалась в том, что sqlite3 обрабатывал значения None в (на мой взгляд) пустых столбцах как уже заполненные. Но это не так.либо не работает.
Если вы не можете сказать, я довольно новичок во всем этом (Python, SQL и т. д.) и много полагаюсь на метод проб и ошибок (наряду с, конечно,, очень тщательное прочтение документации).
Потенциальные источники моей проблемы, о которых я могу думать:
1) Не каждое «Вещество» из bad_table соответствует столбцу вgood_table (например, «Дети»).Я надеюсь, что sqlite просто пропустит мои попытки «вставить INTO» в данные good_table, которые там не помещаются, но я этого не знаю.
2) Более вероятно, что я форматирую что-то неправильно, или пропускаю запятую или набор фигурных скобок или что-то там, где они мне нужны.Вот почему я пришел к вам, хорошие люди, за советом.
Не похоже, что то, что я пытаюсь сделать, должно быть очень сложным, но я совершенно ошарашен и буду очень признателенэто если кто-то может указать, где я ошибся, или предложить лучший подход.