2016-02-08 1 views
0

J'ai découvert la commande \copy pour télécharger des fichiers CSV/TSV dans une table. C'est une méthode très pratique parce que j'ai une grande quantité de données à charger en même temps.Ajout d'une chaîne avec des caractères de nouvelle ligne dans un fichier à télécharger dans une base de données SQL UTF8

Mon problème est que j'ai du texte à charger et que certains d'entre eux contiennent \n caractères. Parce que je génère des fichiers texte utf-8, ils sont reconnus comme de nouveaux caractères de ligne et ne peuvent pas être correctement chargés dans la base de données. Y a-t-il un moyen de les encoder, en utilisant la fonction python, pour créer mon fichier à télécharger?

+0

Votre fichier doit correspondre aux exigences CSV si vous souhaitez l'importer en utilisant le mode CSV. Le retour chariot est souvent défini comme séparateur de ligne. Si elle apparaît dans une colonne, elle doit être échappée ou incluse dans une citation de cellule. Est-ce que le producteur de votre fichier peut gérer cela et fournit des chaînes entre guillemets? – jlandercy

Répondre

0

Pour remplacer le \n, j'ai utilisé la méthode python str replace lors de la création de mon fichier TSV. Je remplace \n par \\\\n. Cette méthode me donne quelques \\n dans mes fichiers TSV et, parce que l'insertion postgreSQL du fichier interprète les caractères spéciaux, \\n est stocké comme \n dans la base de données.

Alors:

my_usable_string = my_string.replace("\n", "\\\\n")