I try to copy the content of a CSV file into my postgresql db and I get this error "extra data after last expected column".
The content of my CSV is
agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone 100,RATP (100),http://www.ratp.fr/,CET,,
and my postgresql command is
COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';
Here is my table
CREATE TABLE agency ( agency_id character varying, agency_name character varying NOT NULL, agency_url character varying NOT NULL, agency_timezone character varying NOT NULL, agency_lang character varying, agency_phone character varying, agency_fare_url character varying ); Column | Type | Modifiers -----------------+-------------------+----------- agency_id | character varying | agency_name | character varying | not null agency_url | character varying | not null agency_timezone | character varying | not null agency_lang | character varying | agency_phone | character varying | agency_fare_url | character varying |
First, we import the psycopg2 package and establish a connection to a PostgreSQL database using the pyscopg2. connect() method. before importing a CSV file we need to create a table. In the example below, we created a table by executing the “create table” SQL command using the cursor.
Now you have 7 fields.
You need to map those 6 fields from the CSV into 6 fields into the table.
You cannot map only 3 fields from csv when you have it 6 like you do in:
\COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';
All fields from the csv file need to to be mapped in the copy from command.
And since you defined csv ,
delimiter is default, you don't need to put it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With