J'apprends l'alchimie SQL. J'ai une liste de noms de colonnes d'un fichier CSV. Je veux créer des instructions d'insertion pour chaque ligne (ou un seul insert pour toutes les lignes). Jusqu'à présent, j'aiCréer un objet Insérer
with open('tablename.csv', 'r') as f:
reader = csv.reader(f)
columns = next(reader)
for data in reader:
query = insert(table(table_name), columns, data)
print(str(query))
Cette juste imprime
INSERT INTO tablename() VALUES()
pour chaque ligne dans le fichier CSV.
Comment fournir correctement les noms et les valeurs des colonnes?
Je suis en train de digérer de grandes quantités de documents sqlalchemy aujourd'hui. Donc, je peux spécifier seulement les noms de colonnes et peut laisser de côté leurs types? –
Est-ce que '[dict (zip (colonnes, données)) pour les données dans le lecteur]' doit être une liste ou peut-il être un générateur? –
Pour votre première question, lorsque vous utilisez les constructions légères 'table()' et column() ', le type_ n'est pas nécessairement obligatoire si vous transmettez des valeurs appropriées que votre pilote DB-API peut gérer de manière à produire SQL convertible en type de colonne et/ou le type en question ne nécessite aucun traitement spécial bind/SQL. –