Error when doing sql

Cravan <[email protected]> Wed, 12 Jun 2019 18:48:29 +0800
Newsgroups gmane.comp.db.postgresql.novice
Message-ID <[email protected]>
Hi all, 

                Thank you for your replies. Now, I'm getting a weird error code when I try to store values from a csv into an sql table in a movie review assignment.I have already edited my apostrophes and spacing and looked up examples from google to try and resolve my error to no avail. I also ensured that i defined DATABASE_URL properly. Please note that my csv values are stored in lists in each cell. They are arranged in a single column such as

The Lego Movie;2014;100;tt1490017;7.8

 Please refer to the files attached. Here is the error code I’m getting:

 

######################################

````

Traceback (most recent call last):

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 1244, in _execute_context

    cursor, statement, parameters, context

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/default.py", line 550, in do_execute

    cursor.execute(statement, parameters)

psycopg2.errors.UndefinedColumn: column "title" of relation "movies" does not exist

LINE 1: INSERT INTO movies(title, year, runtime, imdbID, imdbRating)...

                           ^

 

 

The above exception was the direct cause of the following exception:

 

Traceback (most recent call last):

File "import.py", line 22, in <module>

    main()

  File "import.py", line 18, in main

    {'title': title, 'year': year, 'runtime': runtime, 'imdbID': imdbID, 'imdbRating

': imdbRating}) # substitute values from CSV line into SQL command, as per this dict

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 2166, in execute

    return connection.execute(statement, *multiparams, **params)

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 982, in execute

    return self._execute_text(object_, multiparams, params)

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 1155, in _execute_text

    parameters,

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 1248, in _execute_context

    e, statement, parameters, cursor, context

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception

    util.raise_from_cause(sqlalchemy_exception, exc_info)

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/util/compat.py", line 383, in raise_from_cause

    reraise(type(exception), exception, tb=exc_tb, cause=cause)

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/util/compat.py", line 128, in reraise

    raise value.with_traceback(tb)

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/base.py", line 1244, in _execute_context

    cursor, statement, parameters, context

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-package

s/sqlalchemy/engine/default.py", line 550, in do_execute

    cursor.execute(statement, parameters)

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column "title" of

 relation "movies" does not exist

LINE 1: INSERT INTO movies(title, year, runtime, imdbID, imdbRating)...

                           ^

 

[SQL: INSERT INTO movies(title, year, runtime, imdbID, imdbRating) VALUES ((title),

(year), (runtime), (imdbID), (imdbRating))]

[parameters: {'title': 'Title', 'year': 'Year', 'runtime': 'Runtime', 'imdbID': 'imd

bID', 'imdbRating': 'imdbRating\n'}]

(Background on this error at: http://sqlalche.me/e/f405)

````
import.py (text/x-python-script, 1.1 KB)
import csv
import sys
import os
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy import create_engine
from flask import Flask, render_template, request, session
from flask_sqlalchemy import SQLAlchemy
from flask_session import Session

engine = create_engine(os.getenv("DATABASE_URL")) # database engine object from SQLAlchemy that manages connections to the database,# DATABASE_URL is an environment variable that indicates where the database lives

def main():
    f = open("movies.csv","r")
    reader = csv.reader(f)
    for row in f: # loop gives each column a name
        title,year,runtime,imdbID,imdbRating = row.split(';')
        engine.execute('INSERT INTO movies(title, year, runtime, imdbID, imdbRating) VALUES ((title), (year), (runtime), (imdbID), (imdbRating))',
                      {'title': title, 'year': year, 'runtime': runtime, 'imdbID': imdbID, 'imdbRating': imdbRating}) # substitute values from CSV line into SQL command, as per this dict

    engine.commit() # transactions are assumed, so close the transaction finished
if __name__ == "__main__":
    main()
summative3.sql (application/octet-stream, 185 B) - not displayed