postgresql + python: ¿cómo adaptarse para copy_from?

database postgresql python sql sqlbulkcopy

Pregunta

¿Qué función puedo usar para adaptar los valores para un uso adecuado en una instrucción COPY FROM ? He intentado esta función de adapt :

from psycopg2.extensions import adapt

Sin embargo, da lo incorrecto para los ::timestsamp de ::timestsamp (anexa ::timestsamp a la cadena, a postgres no le gusta) y la cadena (los envuelve en comillas simples, por ejemplo, la cadena vacía es '', donde parece que no se deben usar comillas) .

Respuesta aceptada

No deberías usar simplemente adapt con copy_from .

copy_from espera un formato diferente a las copy_from de SQL.

Para cadenas, sugeriría escribir su propia función copy_adapt , que debería escapar de las pestañas con \t , CR con \r LF con \n .

Los valores de las columnas de fecha / hora deben tener el formato (¿con strftime?) Como la cadena que se ve cuando SELECT now() en Postgres.

Los elementos de la tupla deben estar separados por pestañas, y la tupla completa debe terminarse con una nueva línea.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué