postgresql + python: comment s'adapter à copy_from?

database postgresql python sql sqlbulkcopy

Question

Quelle fonction puis-je utiliser pour adapter les valeurs pour une utilisation appropriée dans une instruction COPY FROM ? J'ai essayé cette fonction d' adapt :

from psycopg2.extensions import adapt

Cependant, cela donne une mauvaise chose pour les ::timestsamp et ::timestsamp ( ::timestsamp de la chaîne, postgres ne l'aime pas) et string (les met entre guillemets simples, par exemple une chaîne vide est '', où il semble qu'aucune guillemet ne devrait être utilisé) .

Réponse acceptée

Vous ne devriez pas simplement utiliser adapt avec copy_from .

copy_from attend un format différent de la citation SQL.

Pour les chaînes, je suggèrerais d'écrire votre propre fonction copy_adapt , qui devrait échapper les tabulations avec \t , CR avec \r et LF avec \n .

Les valeurs des colonnes timestamp / date doivent être formatées (avec strftime?) Comme la chaîne que vous voyez lorsque vous sélectionnez SELECT now() dans Postgres.

Les éléments du tuple doivent être définis par des onglets et le tuple entier doit être fini avec une nouvelle ligne.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi