I'm sorry if I have caused any inconvenience, but this project is an assignment 
for my school's computing course, and I checked with my teacher but she 
couldn't find the root of the problem. I have edited my code based on your 
suggestions, but am still facing the same problem.
Here is the code that is supposed to produce an individualised webpage for each 
movie, with any reviews to be on it(if there are)

````
@app.route("/movies/<movie>")
def movie(movie):
    lol = movie.split(',')
    movie_title = lol[0]
    res = requests.get("http://www.omdbapi.com/";, params={"apikey": "c2c76d64", 
"t": movie_title, "plot": "full"})
    omdb_data = res.json()
    ratings_list = omdb_data['Ratings']
    check_for_review_statement = sqlalchemy.text('SELECT * FROM reviews WHERE 
movie = :movie')
    check_for_review = engine.execute(check_for_review_statement, 
movie=movie_title).fetchall()
    print(check_for_review)
    if res.status_code == 200:
        if len(check_for_review) != 0:
            return render_template("movie_individual.html", movie=lol, 
omdb_data=omdb_data, ratings_list=ratings_list, 
check_for_review=check_for_review)
        else:
            return render_template("movie_no_review.html", movie=lol, 
omdb_data=omdb_data, ratings_list=ratings_list)
    else:
        if len(check_for_review) != 0:
            return render_template("movie_noomdbdata.html", movie=lol, 
check_for_review=check_for_review)
        else:
            return render_template("movie_gotnothing.html", movie=lol, 
res=res.json())
````
Below is now the new api code:
````
@app.route("/api/<imdb_id>")
def api(imdb_id):
    check_for_api_statement = sqlalchemy.text('SELECT title, year, "imdbRating" 
FROM movies WHERE "imdbID" = :imdb_id')
    check_for_api_unsplitted = engine.execute(check_for_api_statement, 
imdb_id=imdb_id).fetchall()
    res = requests.get("http://www.omdbapi.com/";, params={"apikey": "c2c76d64", 
"i": imdb_id, "plot": "full"})
    omdb_data = res.json()
    check_for_api = check_for_api_unsplitted[0]
    title = check_for_api["title"]
    title_pattern =  "(" + title 
    year = check_for_api[1]
    imdb_id = imdb_id
    imdbrating = check_for_api[2]
    director = omdb_data['Director']
    actors = omdb_data['Actors']
    check_for_reviews_statement = sqlalchemy.text('SELECT * FROM reviews WHERE 
movie = :movie_title')
    check_for_reviews = engine.execute(check_for_reviews_statement, 
movie_title=title_pattern).fetchall()
    review_count = len(check_for_reviews)
    print(check_for_reviews)
    if len(check_for_reviews) != 0:
        score = float(check_for_reviews[4])
        average_score = score/review_count
    else:
        average_score = "N.A"
    a = 
{"title":title,"year":year,"imdb_id":imdb_id,"director":director,"actors":actors,"imdb_rating":imdbrating,"review_count":review_count,"average_score":average_score}
    apijson = json.dumps(a, cls=CustomJsonEncoder)
    if len(check_for_api) != 0:
        return render_template("api.html", apijson=apijson)
    else:
        return render_template("error2.html", message="No such movie.")
````
Here are the logs for the api:
````
127.0.0.1 - - [05/Jul/2019 14:42:12] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [05/Jul/2019 14:42:14] "GET /favicon.ico HTTP/1.1" 404 -
2019-07-05 14:42:25,098 INFO sqlalchemy.engine.base.Engine select version()
2019-07-05 14:42:25,098 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:42:26,020 DEBUG sqlalchemy.engine.base.Engine Col ('version',)
2019-07-05 14:42:26,020 DEBUG sqlalchemy.engine.base.Engine Row ('PostgreSQL 
11.4 (Ubuntu 11.4-1.pgdg16.04+1
) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 
5.4.0 20160609, 64-bit',)
2019-07-05 14:42:26,021 INFO sqlalchemy.engine.base.Engine select 
current_schema()
2019-07-05 14:42:26,021 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:42:26,363 DEBUG sqlalchemy.engine.base.Engine Col 
('current_schema',)
2019-07-05 14:42:26,363 DEBUG sqlalchemy.engine.base.Engine Row ('public',)
2019-07-05 14:42:26,738 INFO sqlalchemy.engine.base.Engine SELECT CAST('test 
plain returns' AS VARCHAR(60))
AS anon_1
2019-07-05 14:42:26,738 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:42:27,146 INFO sqlalchemy.engine.base.Engine SELECT CAST('test 
unicode returns' AS VARCHAR(60)
) AS anon_1
2019-07-05 14:42:27,146 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:42:27,548 INFO sqlalchemy.engine.base.Engine show 
standard_conforming_strings
2019-07-05 14:42:27,548 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:42:28,295 DEBUG sqlalchemy.engine.base.Engine Col 
('standard_conforming_strings',)
2019-07-05 14:42:28,296 DEBUG sqlalchemy.engine.base.Engine Row ('on',)
2019-07-05 14:42:29,400 INFO sqlalchemy.engine.base.Engine SELECT title, year, 
"imdbRating" FROM movies WHER
E "imdbID" = %(imdb_id)s
2019-07-05 14:42:29,400 INFO sqlalchemy.engine.base.Engine {'imdb_id': 
'tt1490017'}
2019-07-05 14:42:30,683 DEBUG sqlalchemy.engine.base.Engine Col ('title', 
'year', 'imdbRating')
2019-07-05 14:42:30,683 DEBUG sqlalchemy.engine.base.Engine Row ('The Lego 
Movie', 2014, Decimal('7.8'))
2019-07-05 14:42:31,248 INFO sqlalchemy.engine.base.Engine SELECT * FROM 
reviews WHERE movie = %(movie_title
)s
2019-07-05 14:42:31,248 INFO sqlalchemy.engine.base.Engine {'movie_title': 
'(The Lego Movie'}
2019-07-05 14:42:32,164 DEBUG sqlalchemy.engine.base.Engine Col ('movie', 
'rating', 'username', 'review')
[]
127.0.0.1 - - [05/Jul/2019 14:42:32] "GET /api/tt1490017 HTTP/1.1" 200 -
````
And here are the logs for the individualised movie:
2019-07-05 14:44:51,837 INFO sqlalchemy.engine.base.Engine select version()
2019-07-05 14:44:51,837 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:44:52,656 DEBUG sqlalchemy.engine.base.Engine Col ('version',)
2019-07-05 14:44:52,656 DEBUG sqlalchemy.engine.base.Engine Row ('PostgreSQL 
11.4 (Ubuntu 11.4-1.pgdg16.04+1
) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 
5.4.0 20160609, 64-bit',)
2019-07-05 14:44:52,657 INFO sqlalchemy.engine.base.Engine select 
current_schema()
2019-07-05 14:44:52,658 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:44:53,069 DEBUG sqlalchemy.engine.base.Engine Col 
('current_schema',)
2019-07-05 14:44:53,069 DEBUG sqlalchemy.engine.base.Engine Row ('public',)
2019-07-05 14:44:53,405 INFO sqlalchemy.engine.base.Engine SELECT CAST('test 
plain returns' AS VARCHAR(60))
AS anon_1
2019-07-05 14:44:53,405 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:44:53,748 INFO sqlalchemy.engine.base.Engine SELECT CAST('test 
unicode returns' AS VARCHAR(60)
) AS anon_1
2019-07-05 14:44:53,748 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:44:54,089 INFO sqlalchemy.engine.base.Engine show 
standard_conforming_strings
2019-07-05 14:44:54,090 INFO sqlalchemy.engine.base.Engine {}
2019-07-05 14:44:54,422 DEBUG sqlalchemy.engine.base.Engine Col 
('standard_conforming_strings',)
2019-07-05 14:44:54,422 DEBUG sqlalchemy.engine.base.Engine Row ('on',)
2019-07-05 14:44:54,807 INFO sqlalchemy.engine.base.Engine SELECT * FROM 
reviews WHERE movie = %(movie)s
2019-07-05 14:44:54,807 INFO sqlalchemy.engine.base.Engine {'movie': "('The 
Lego Movie'"}
2019-07-05 14:44:55,626 DEBUG sqlalchemy.engine.base.Engine Col ('movie', 
'rating', 'username', 'review')
2019-07-05 14:44:55,626 DEBUG sqlalchemy.engine.base.Engine Row ("('The Lego 
Movie'", Decimal('1'), 'sms', '
a very cool movie')
2019-07-05 14:44:55,626 DEBUG sqlalchemy.engine.base.Engine Row ("('The Lego 
Movie'", Decimal('8'), 'was', '
cool and good')
[("('The Lego Movie'", Decimal('1'), 'sms', 'a very cool movie'), ("('The Lego 
Movie'", Decimal('8'), 'was',
 'cool and good')]
127.0.0.1 - - [05/Jul/2019 14:44:55] "GET 
/movies/%28%27The%20Lego%20Movie%27%2C%202014%2C%20100%2C%20%27tt1
490017%27%2C%20Decimal%28%277.8%27%29%29 HTTP/1.1" 200 -
````
Thanks,
Cravan

On 5/7/19, 1:08 AM, "Simon King" <[email protected] on behalf of 
[email protected]> wrote:

    I'm afraid I can't really help you debug your whole application like
    this - I can only try to answer specific questions.
    
    If you haven't already done so, I think it would help you to find a
    program to explore the data in your database. Either the psql command
    line tool that comes with postgresql, pgcli (https://www.pgcli.com/),
    or one of the GUIs listed on
    https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools.
    Then you can test out the queries that you're trying to run from
    SQLAlchemy. It would hopefully be much more obvious to you when you've
    inserted incorrect data.
    
    Who has given you this assignment? Is there anyone else that can help you?
    
    Simon
    
    On Thu, Jul 4, 2019 at 2:37 PM Cravan <[email protected]> wrote:
    >
    > Also, another problem is that multiple reviews do not print out.
    >
    > On 4/7/19, 5:25 PM, "Simon King" <[email protected] on behalf 
of [email protected]> wrote:
    >
    >     The corrupted value is in the "reviews" table. Are you populating that
    >     from a CSV file as well? If so, please show the code.
    >
    >     As for fixing the other problem, I don't really understand what the
    >     code is trying to do, so I can't give you an exact solution. But let's
    >     have a look in more detail:
    >
    >
    >
    > This part is supposed to check for all reviews and print it out
    >
    >
    >
    >
    >         check_for_review_statement = sqlalchemy.text('SELECT * FROM
    >     reviews WHERE movie = :movie')
    >         check_for_review = engine.execute(check_for_review_statement,
    >     movie=movie_title).fetchall()
    >         if res.status_code == 200:
    >             if len(check_for_review) != 0:
    >                 check_for_review_splitted = 
str(check_for_review).split(',')
    >
    >     So "check_for_review" is a list of rows. Each row is an SQLAlchemy
    >     RowProxy object that behaves a bit like a mix between a tuple and a
    >     dictionary. These objects are properly structured, so that you can
    >     access the rows and columns easily:
    >
    >         row = check_for_review[0]
    >         rating = row["rating"]
    >
    >     But you're calling "str(check_for_review)". That turns the nice
    >     structured set of objects into a single string, looking something like
    >     this:
    >
    >         "[('Spider-Man', '10', 'peterp', 'Amazing, Incredible')]"
    >
    >     Then you're turning that string back into a list by splitting it on
    >     commas. The individual items in that list will now be:
    >
    >         "[('Spider-Man'"
    >         " '10'"
    >         " 'peterp'"
    >         " 'Amazing"
    >         " Incredible')]"
    >
    >     As you can see, you've got unwanted brackets and quotes, and because
    >     the review itself contained a comma, you've split that up as well.
    >
    >     Simon
    >
    >     On Wed, Jul 3, 2019 at 3:48 PM Cravan <[email protected]> wrote:
    >     >
    >     > How do you suggest I change it then? I import my values are from a 
csv sheet as per the task requirements. As for the other problem, how should I 
change it? And may I know why will it not work/break badly?
    >     > Cravan
    >     >
    >     > On 3/7/19, 10:43 PM, "Simon King" <[email protected] on 
behalf of [email protected]> wrote:
    >     >
    >     >     Look more closely here:
    >     >
    >     >     2019-07-03 22:21:46,676 INFO sqlalchemy.engine.base.Engine 
SELECT *
    >     >     FROM reviews WHERE movie = %(movie)s
    >     >     2019-07-03 22:21:46,676 INFO sqlalchemy.engine.base.Engine 
{'movie':
    >     >     "('The Lego Movie'"}
    >     >     2019-07-03 22:21:47,375 DEBUG sqlalchemy.engine.base.Engine Col
    >     >     ('movie', 'rating', 'username', 'review')
    >     >     2019-07-03 22:21:47,376 DEBUG sqlalchemy.engine.base.Engine Row
    >     >     ("('The Lego Movie'", Decimal('1'), 'sms', '
    >     >     a very cool movie')
    >     >
    >     >     The value in the "movie" column is literally:
    >     >
    >     >         ('The Lego Movie'
    >     >
    >     >     ie. "open parenthesis, single quote, The Lego Movie, single 
quote"
    >     >
    >     >     Whatever you're doing to insert data into the database is 
broken.
    >     >
    >     >     Things like this also raise red flags:
    >     >
    >     >         check_for_review = 
engine.execute(check_for_review_statement,
    >     >     movie=movie_title).fetchall()
    >     >         check_for_review_splitted = str(check_for_review).split(',')
    >     >
    >     >     You're getting a list of rows, converting them to a string, and 
then
    >     >     splitting that string on commas. This will break badly in 
anything but
    >     >     the simplest of cases.
    >     >
    >     >     Simon
    >     >
    >     >     On Wed, Jul 3, 2019 at 3:23 PM Cravan <[email protected]> 
wrote:
    >     >     >
    >     >     > Yes, it is.
    >     >     > ````
    >     >     > 2019-07-03 22:21:43,914 INFO sqlalchemy.engine.base.Engine 
select version()
    >     >     > 2019-07-03 22:21:43,915 INFO sqlalchemy.engine.base.Engine {}
    >     >     > 2019-07-03 22:21:44,608 DEBUG sqlalchemy.engine.base.Engine 
Col ('version',)
    >     >     > 2019-07-03 22:21:44,608 DEBUG sqlalchemy.engine.base.Engine 
Row ('PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg16.04+1
    >     >     > ) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 
5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, 64-bit',)
    >     >     > 2019-07-03 22:21:44,609 INFO sqlalchemy.engine.base.Engine 
select current_schema()
    >     >     > 2019-07-03 22:21:44,610 INFO sqlalchemy.engine.base.Engine {}
    >     >     > 2019-07-03 22:21:45,020 DEBUG sqlalchemy.engine.base.Engine 
Col ('current_schema',)
    >     >     > 2019-07-03 22:21:45,021 DEBUG sqlalchemy.engine.base.Engine 
Row ('public',)
    >     >     > 2019-07-03 22:21:45,346 INFO sqlalchemy.engine.base.Engine 
SELECT CAST('test plain returns' AS VARCHAR(60))
    >     >     > AS anon_1
    >     >     > 2019-07-03 22:21:45,346 INFO sqlalchemy.engine.base.Engine {}
    >     >     > 2019-07-03 22:21:45,670 INFO sqlalchemy.engine.base.Engine 
SELECT CAST('test unicode returns' AS VARCHAR(60)
    >     >     > ) AS anon_1
    >     >     > 2019-07-03 22:21:45,671 INFO sqlalchemy.engine.base.Engine {}
    >     >     > 2019-07-03 22:21:46,000 INFO sqlalchemy.engine.base.Engine 
show standard_conforming_strings
    >     >     > 2019-07-03 22:21:46,000 INFO sqlalchemy.engine.base.Engine {}
    >     >     > 2019-07-03 22:21:46,348 DEBUG sqlalchemy.engine.base.Engine 
Col ('standard_conforming_strings',)
    >     >     > 2019-07-03 22:21:46,348 DEBUG sqlalchemy.engine.base.Engine 
Row ('on',)
    >     >     > 2019-07-03 22:21:46,676 INFO sqlalchemy.engine.base.Engine 
SELECT * FROM reviews WHERE movie = %(movie)s
    >     >     > 2019-07-03 22:21:46,676 INFO sqlalchemy.engine.base.Engine 
{'movie': "('The Lego Movie'"}
    >     >     > 2019-07-03 22:21:47,375 DEBUG sqlalchemy.engine.base.Engine 
Col ('movie', 'rating', 'username', 'review')
    >     >     > 2019-07-03 22:21:47,376 DEBUG sqlalchemy.engine.base.Engine 
Row ("('The Lego Movie'", Decimal('1'), 'sms', '
    >     >     > a very cool movie')
    >     >     > 127.0.0.1 - - [03/Jul/2019 22:21:47] "GET 
/movies/%28%27The%20Lego%20Movie%27%2C%202014%2C%20100%2C%20%27tt1
    >     >     > 490017%27%2C%20Decimal%28%277.8%27%29%29 HTTP/1.1" 200 -
    >     >     > ````
    >     >     > Cravan
    >     >     > On 3/7/19, 10:20 PM, "Simon King" 
<[email protected] on behalf of [email protected]> wrote:
    >     >     >
    >     >     >     Is that screenshot from a review for The Lego Movie? Can 
you show the
    >     >     >     log output when you generate that page?
    >     >     >
    >     >     >     On Wed, Jul 3, 2019 at 3:16 PM Cravan 
<[email protected]> wrote:
    >     >     >     >
    >     >     >     > This is because I have a movie function that throws up 
any reviews; here it is:
    >     >     >     > ````
    >     >     >     > @app.route("/movies/<movie>")
    >     >     >     > def movie(movie):
    >     >     >     >     lol = movie.split(',')
    >     >     >     >     movie_title = lol[0]
    >     >     >     >     res = requests.get("http://www.omdbapi.com/";, 
params={"apikey": "c2c76d64", "t": movie_title, "plot": "full"})
    >     >     >     >     omdb_data = res.json()
    >     >     >     >     ratings_list = omdb_data['Ratings']
    >     >     >     >     check_for_review_statement = 
sqlalchemy.text('SELECT * FROM reviews WHERE movie = :movie')
    >     >     >     >     check_for_review = 
engine.execute(check_for_review_statement, movie=movie_title).fetchall()
    >     >     >     >     if res.status_code == 200:
    >     >     >     >         if len(check_for_review) != 0:
    >     >     >     >             check_for_review_splitted = 
str(check_for_review).split(',')
    >     >     >     >             return 
render_template("movie_individual.html", movie=lol, 
check_for_review=check_for_review_splitted, omdb_data=omdb_data, 
ratings_list=ratings_list)
    >     >     >     >         else:
    >     >     >     >             return 
render_template("movie_no_review.html", movie=lol, omdb_data=omdb_data, 
ratings_list=ratings_list)
    >     >     >     >     else:
    >     >     >     >         if len(check_for_review) != 0:
    >     >     >     >             check_for_review_splitted = 
str(check_for_review).split(',')
    >     >     >     >             return 
render_template("movie_noomdbdata.html", movie=lol, 
check_for_review=check_for_review_splitted)
    >     >     >     >         else:
    >     >     >     >             return 
render_template("movie_gotnothing.html", movie=lol, res=res.json())
    >     >     >     > ````
    >     >     >     > And it prints out the review.Here's a pic attached to 
this email.
    >     >     >     > Cravan
    >     >     >     >
    >     >     >     >
    >     >     >     > On 3/7/19, 10:13 PM, "Simon King" 
<[email protected] on behalf of [email protected]> wrote:
    >     >     >     >
    >     >     >     >     On Wed, Jul 3, 2019 at 11:54 AM Cravan 
<[email protected]> wrote:
    >     >     >     >     >
    >     >     >     >     > Hi Simon,
    >     >     >     >     >         I always turn on debug mode using export 
FLASK_DEBUG=1 in the shell, but no error pops out, so I have no idea whether 
that is similar.  I tried echo="debug", but didn’t really understand the 
results, so I am confused as to how to edit my code. I have used both edits as 
suggested, and this is what was produced:
    >     >     >     >     > ````
    >     >     >     >     > 2019-07-03 18:49:43,100 INFO 
sqlalchemy.engine.base.Engine select version()
    >     >     >     >     > 2019-07-03 18:49:43,100 INFO 
sqlalchemy.engine.base.Engine {}
    >     >     >     >     > 2019-07-03 18:49:43,764 DEBUG 
sqlalchemy.engine.base.Engine Col ('version',)
    >     >     >     >     > 2019-07-03 18:49:43,764 DEBUG 
sqlalchemy.engine.base.Engine Row ('PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg16.04+1
    >     >     >     >     > ) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 
5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, 64-bit',)
    >     >     >     >     > 2019-07-03 18:49:43,765 INFO 
sqlalchemy.engine.base.Engine select current_schema()
    >     >     >     >     > 2019-07-03 18:49:43,765 INFO 
sqlalchemy.engine.base.Engine {}
    >     >     >     >     > 2019-07-03 18:49:44,109 DEBUG 
sqlalchemy.engine.base.Engine Col ('current_schema',)
    >     >     >     >     > 2019-07-03 18:49:44,110 DEBUG 
sqlalchemy.engine.base.Engine Row ('public',)
    >     >     >     >     > 2019-07-03 18:49:44,534 INFO 
sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60))
    >     >     >     >     > AS anon_1
    >     >     >     >     > 2019-07-03 18:49:44,534 INFO 
sqlalchemy.engine.base.Engine {}
    >     >     >     >     > 2019-07-03 18:49:44,947 INFO 
sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS VARCHAR(60)
    >     >     >     >     > ) AS anon_1
    >     >     >     >     > 2019-07-03 18:49:44,947 INFO 
sqlalchemy.engine.base.Engine {}
    >     >     >     >     > 2019-07-03 18:49:45,353 INFO 
sqlalchemy.engine.base.Engine show standard_conforming_strings
    >     >     >     >     > 2019-07-03 18:49:45,353 INFO 
sqlalchemy.engine.base.Engine {}
    >     >     >     >     > 2019-07-03 18:49:45,762 DEBUG 
sqlalchemy.engine.base.Engine Col ('standard_conforming_strings',)
    >     >     >     >     > 2019-07-03 18:49:45,762 DEBUG 
sqlalchemy.engine.base.Engine Row ('on',)
    >     >     >     >
    >     >     >     >     Everything above this point is routine stuff that 
SQLAlchemy does to
    >     >     >     >     figure out what verison of Postgresql it's talking 
to and what options
    >     >     >     >     it is running with. You can safely ignore it.
    >     >     >     >
    >     >     >     >     The next line is the first query that you've run:
    >     >     >     >     > 2019-07-03 18:49:46,173 INFO 
sqlalchemy.engine.base.Engine SELECT title, year, "imdbRating" FROM movies WHER
    >     >     >     >     > E "imdbID" = %(imdb_id)s
    >     >     >     >
    >     >     >     >     These are the parameters that you passed to the 
query (in this case,
    >     >     >     >     just the imdb_id):
    >     >     >     >     > 2019-07-03 18:49:46,173 INFO 
sqlalchemy.engine.base.Engine {'imdb_id': 'tt1490017'}
    >     >     >     >
    >     >     >     >     The "Col" line tells you the names of the columns 
in the result set:
    >     >     >     >     > 2019-07-03 18:49:46,991 DEBUG 
sqlalchemy.engine.base.Engine Col ('title', 'year', 'imdbRating')
    >     >     >     >
    >     >     >     >     ...and then you will normally see a "Row" line for 
each row in the
    >     >     >     >     result. In this case your query returned a single 
row. The elements of
    >     >     >     >     the row tuple correspond to the columns from the 
Col line.
    >     >     >     >     > 2019-07-03 18:49:46,991 DEBUG 
sqlalchemy.engine.base.Engine Row ('The Lego Movie', 2014, Decimal('7.8'))
    >     >     >     >
    >     >     >     >     I assume this is from your "print(check_for_api)" 
statement:
    >     >     >     >     > ('The Lego Movie', 2014, Decimal('7.8'))
    >     >     >     >
    >     >     >     >     Here's your next query:
    >     >     >     >     > 2019-07-03 18:49:47,862 INFO 
sqlalchemy.engine.base.Engine SELECT * FROM reviews WHERE movie = %(movie_title
    >     >     >     >     > )s
    >     >     >     >
    >     >     >     >     ...and the parameters for that query:
    >     >     >     >     > 2019-07-03 18:49:47,863 INFO 
sqlalchemy.engine.base.Engine {'movie_title': 'The Lego Movie'}
    >     >     >     >
    >     >     >     >     The column names in the result set:
    >     >     >     >     > 2019-07-03 18:49:48,699 DEBUG 
sqlalchemy.engine.base.Engine Col ('movie', 'rating', 'username', 'review')
    >     >     >     >
    >     >     >     >     ...but then there are no Row lines, so the query 
didn't return any
    >     >     >     >     rows. In other words, there are no rows in the 
"reviews" table where
    >     >     >     >     the "movie" column equals "The Lego Movie".
    >     >     >     >
    >     >     >     >     You said that you've confirmed that you've entered 
the review. How
    >     >     >     >     have you confirmed that?
    >     >     >     >
    >     >     >     >     Simon
    >     >     >     >
    >     >     >     >
    >     >     >     >     > []
    >     >     >     >     > {"title": "The Lego Movie", "year": 2014, 
"imdb_id": "tt1490017", "director": "Phil Lord, Christopher Miller
    >     >     >     >     > ", "actors": "Will Arnett, Elizabeth Banks, Craig 
Berry, Alison Brie", "imdb_rating": 7.8, "review_count": 0
    >     >     >     >     > , "average_score": "N.A"}
    >     >     >     >     > 127.0.0.1 - - [03/Jul/2019 18:49:49] "GET 
/api/tt1490017 HTTP/1.1" 200 -
    >     >     >     >     > ````
    >     >     >     >     > Also, I used three print statements,
    >     >     >     >     > ````
    >     >     >     >     >         print(check_for_api)
    >     >     >     >     >         ......#some code(same as before)
    >     >     >     >     >         print(check_for_reviews_unsplitted)
    >     >     >     >     >         ......#some code again(same as before)
    >     >     >     >     >         print (apijson)
    >     >     >     >     > ````
    >     >     >     >     > Thanks,
    >     >     >     >     > Cravan
    >     >     >     >     >
    >     >     >     >     >
    >     >     >     >     > On 3/7/19, 12:07 AM, "Simon King" 
<[email protected] on behalf of [email protected]> wrote:
    >     >     >     >     >
    >     >     >     >     >     You might want to try turning on debug 
logging for your SQL statements
    >     >     >     >     >     by passing echo="debug" when creating your 
engine:
    >     >     >     >     >
    >     >     >     >     >       
https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine
    >     >     >     >     >
    >     >     >     >     >     Amongst other things, this will show the 
values of parameters that you
    >     >     >     >     >     are passing to the database.
    >     >     >     >     >
    >     >     >     >     >     I'm not sure what your problem is, but I 
notice that you are using
    >     >     >     >     >     "SELECT * FROM movies" to load your rows, and 
then you are assuming
    >     >     >     >     >     that the columns you get back are in a 
certain order. (You assume that
    >     >     >     >     >     the first column is title, the second is 
year, and the fifth is
    >     >     >     >     >     imdbrating). It's possible that the columns 
are coming back in a
    >     >     >     >     >     different order, and so the value you think 
is the title is actually
    >     >     >     >     >     something else.
    >     >     >     >     >
    >     >     >     >     >     It would be better to explicitly list the 
columns you want, something like:
    >     >     >     >     >
    >     >     >     >     >         SELECT title, year, imdbrating
    >     >     >     >     >         FROM movies
    >     >     >     >     >         WHERE "imdbID" = :imdb_id
    >     >     >     >     >
    >     >     >     >     >     Alternatively, the rows that you get back 
from fetchall() actually
    >     >     >     >     >     know which columns they came from, so you 
could do this:
    >     >     >     >     >
    >     >     >     >     >         # don't call list() here:
    >     >     >     >     >         check_for_api = 
check_for_api_unsplitted[0]
    >     >     >     >     >
    >     >     >     >     >         # use dictionary-style access to get the 
individual values
    >     >     >     >     >         title = check_for_api["title"]
    >     >     >     >     >
    >     >     >     >     >     Simon
    >     >     >     >     >
    >     >     >     >     >     On Tue, Jul 2, 2019 at 3:33 PM Cravan 
<[email protected]> wrote:
    >     >     >     >     >     >
    >     >     >     >     >     > Hi all,
    >     >     >     >     >     >
    >     >     >     >     >     >                 One of the other tasks for 
my movie review assignment is that I have to create api access to my website, 
which should return a json response including a review count. However, I have 
confirmed that I have entered a review for a specific movie and it prompts out 
in my html, but apparently when I try to print out the json I get 0 reviews for 
my review count. Can someone help me troubleshoot? Sorry if it sounds unclear.
    >     >     >     >     >     >
    >     >     >     >     >     > ````
    >     >     >     >     >     >
    >     >     >     >     >     > @app.route("/api/<imdb_id>")
    >     >     >     >     >     >
    >     >     >     >     >     > def api(imdb_id):
    >     >     >     >     >     >
    >     >     >     >     >     >     check_for_api_statement = 
sqlalchemy.text('SELECT * FROM movies WHERE "imdbID" = :imdb_id')
    >     >     >     >     >     >
    >     >     >     >     >     >     check_for_api_unsplitted = 
engine.execute(check_for_api_statement, imdb_id=imdb_id).fetchall()
    >     >     >     >     >     >
    >     >     >     >     >     >     res = 
requests.get("http://www.omdbapi.com/";, params={"apikey": "c2c76d64", "i": 
imdb_id, "plot": "full"})
    >     >     >     >     >     >
    >     >     >     >     >     >     omdb_data = res.json()
    >     >     >     >     >     >
    >     >     >     >     >     >     check_for_api = 
list(check_for_api_unsplitted[0])
    >     >     >     >     >     >
    >     >     >     >     >     >     title_unsplitted = check_for_api[0]
    >     >     >     >     >     >
    >     >     >     >     >     >     title = check_for_api[0]
    >     >     >     >     >     >
    >     >     >     >     >     >     year = check_for_api[1]
    >     >     >     >     >     >
    >     >     >     >     >     >     imdb_id = imdb_id
    >     >     >     >     >     >
    >     >     >     >     >     >     imdbrating = check_for_api[4]
    >     >     >     >     >     >
    >     >     >     >     >     >     director = omdb_data['Director']
    >     >     >     >     >     >
    >     >     >     >     >     >     actors = omdb_data['Actors']
    >     >     >     >     >     >
    >     >     >     >     >     >     check_for_reviews_statement = 
sqlalchemy.text('SELECT * FROM reviews WHERE movie = :movie_title')
    >     >     >     >     >     >
    >     >     >     >     >     >     check_for_reviews_unsplitted = 
engine.execute(check_for_reviews_statement, movie_title=title).fetchall()
    >     >     >     >     >     >
    >     >     >     >     >     >     review_count = 
len(check_for_reviews_unsplitted)
    >     >     >     >     >     >
    >     >     >     >     >     >     print(check_for_reviews_unsplitted)    
#this returns a blank list for some strange reason
    >     >     >     >     >     >
    >     >     >     >     >     >     if len(check_for_reviews_unsplitted) != 
0:
    >     >     >     >     >     >
    >     >     >     >     >     >         check_for_reviews = 
check_for_reviews_unsplitted.split(',')
    >     >     >     >     >     >
    >     >     >     >     >     >         score = float(check_for_reviews[4])
    >     >     >     >     >     >
    >     >     >     >     >     >         average_score = score/review_count
    >     >     >     >     >     >
    >     >     >     >     >     >     else:
    >     >     >     >     >     >
    >     >     >     >     >     >         average_score = "N.A"
    >     >     >     >     >     >
    >     >     >     >     >     > a =
    >     >     >     >     >     >
    >     >     >     >     >     > 
{"title":title,"year":year,"imdb_id":imdb_id,"director":director,"actors":actors,"imdb_rating":imdbrating,"review_count":review_count,"average_score":average_score}
    >     >     >     >     >     >
    >     >     >     >     >     >     apijson = json.dumps(a, 
cls=CustomJsonEncoder)
    >     >     >     >     >     >
    >     >     >     >     >     >     print (apijson)
    >     >     >     >     >     >
    >     >     >     >     >     >     if len(check_for_api) != 0:
    >     >     >     >     >     >
    >     >     >     >     >     >         return render_template("api.html", 
apijson=apijson)
    >     >     >     >     >     >
    >     >     >     >     >     >     else:
    >     >     >     >     >     >
    >     >     >     >     >     >         return 
render_template("error2.html", message="No such movie.")
    >     >     >     >     >     >
    >     >     >     >     >     > --
    >     >     >     >     >     > SQLAlchemy -
    >     >     >     >     >     > The Python SQL Toolkit and Object 
Relational Mapper
    >     >     >     >     >     >
    >     >     >     >     >     > http://www.sqlalchemy.org/
    >     >     >     >     >     >
    >     >     >     >     >     > To post example code, please provide an 
MCVE: Minimal, Complete, and Verifiable Example. See 
http://stackoverflow.com/help/mcve for a full description.
    >     >     >     >     >     > ---
    >     >     >     >     >     > You received this message because you are 
subscribed to the Google Groups "sqlalchemy" group.
    >     >     >     >     >     > To unsubscribe from this group and stop 
receiving emails from it, send an email to 
[email protected].
    >     >     >     >     >     > To post to this group, send email to 
[email protected].
    >     >     >     >     >     > Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     >     >     >     > To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/7DB000C8-1EBC-48AF-A24F-202196C743CF%40gmail.com.
    >     >     >     >     >     > For more options, visit 
https://groups.google.com/d/optout.
    >     >     >     >     >
    >     >     >     >     >     --
    >     >     >     >     >     SQLAlchemy -
    >     >     >     >     >     The Python SQL Toolkit and Object Relational 
Mapper
    >     >     >     >     >
    >     >     >     >     >     http://www.sqlalchemy.org/
    >     >     >     >     >
    >     >     >     >     >     To post example code, please provide an MCVE: 
Minimal, Complete, and Verifiable Example.  See  
http://stackoverflow.com/help/mcve for a full description.
    >     >     >     >     >     ---
    >     >     >     >     >     You received this message because you are 
subscribed to the Google Groups "sqlalchemy" group.
    >     >     >     >     >     To unsubscribe from this group and stop 
receiving emails from it, send an email to 
[email protected].
    >     >     >     >     >     To post to this group, send email to 
[email protected].
    >     >     >     >     >     Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     >     >     >     To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexfVMZTVX6hKDvxgRFG0Wrc%3DhSfwU05XQGm%2B7gsRTtR_Cw%40mail.gmail.com.
    >     >     >     >     >     For more options, visit 
https://groups.google.com/d/optout.
    >     >     >     >     >
    >     >     >     >     >
    >     >     >     >     >
    >     >     >     >     > --
    >     >     >     >     > SQLAlchemy -
    >     >     >     >     > The Python SQL Toolkit and Object Relational 
Mapper
    >     >     >     >     >
    >     >     >     >     > http://www.sqlalchemy.org/
    >     >     >     >     >
    >     >     >     >     > To post example code, please provide an MCVE: 
Minimal, Complete, and Verifiable Example.  See  
http://stackoverflow.com/help/mcve for a full description.
    >     >     >     >     > ---
    >     >     >     >     > You received this message because you are 
subscribed to the Google Groups "sqlalchemy" group.
    >     >     >     >     > To unsubscribe from this group and stop receiving 
emails from it, send an email to [email protected].
    >     >     >     >     > To post to this group, send email to 
[email protected].
    >     >     >     >     > Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     >     >     > To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/FD18A0DF-70BD-4867-BA8C-A90DD76E24A3%40gmail.com.
    >     >     >     >     > For more options, visit 
https://groups.google.com/d/optout.
    >     >     >     >
    >     >     >     >     --
    >     >     >     >     SQLAlchemy -
    >     >     >     >     The Python SQL Toolkit and Object Relational Mapper
    >     >     >     >
    >     >     >     >     http://www.sqlalchemy.org/
    >     >     >     >
    >     >     >     >     To post example code, please provide an MCVE: 
Minimal, Complete, and Verifiable Example.  See  
http://stackoverflow.com/help/mcve for a full description.
    >     >     >     >     ---
    >     >     >     >     You received this message because you are 
subscribed to the Google Groups "sqlalchemy" group.
    >     >     >     >     To unsubscribe from this group and stop receiving 
emails from it, send an email to [email protected].
    >     >     >     >     To post to this group, send email to 
[email protected].
    >     >     >     >     Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     >     >     To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexc6%2BT%2BzNK%3DR2WPefSgGVkYnC8CyjGkF_ydN3HEFp_ggmg%40mail.gmail.com.
    >     >     >     >     For more options, visit 
https://groups.google.com/d/optout.
    >     >     >     >
    >     >     >     >
    >     >     >     > --
    >     >     >     > SQLAlchemy -
    >     >     >     > The Python SQL Toolkit and Object Relational Mapper
    >     >     >     >
    >     >     >     > http://www.sqlalchemy.org/
    >     >     >     >
    >     >     >     > To post example code, please provide an MCVE: Minimal, 
Complete, and Verifiable Example.  See  http://stackoverflow.com/help/mcve for 
a full description.
    >     >     >     > ---
    >     >     >     > You received this message because you are subscribed to 
the Google Groups "sqlalchemy" group.
    >     >     >     > To unsubscribe from this group and stop receiving 
emails from it, send an email to [email protected].
    >     >     >     > To post to this group, send email to 
[email protected].
    >     >     >     > Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     >     > To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/B6DBDE22-5A75-4DE6-B69C-346E5E597F9E%40gmail.com.
    >     >     >     > For more options, visit 
https://groups.google.com/d/optout.
    >     >     >
    >     >     >     --
    >     >     >     SQLAlchemy -
    >     >     >     The Python SQL Toolkit and Object Relational Mapper
    >     >     >
    >     >     >     http://www.sqlalchemy.org/
    >     >     >
    >     >     >     To post example code, please provide an MCVE: Minimal, 
Complete, and Verifiable Example.  See  http://stackoverflow.com/help/mcve for 
a full description.
    >     >     >     ---
    >     >     >     You received this message because you are subscribed to 
the Google Groups "sqlalchemy" group.
    >     >     >     To unsubscribe from this group and stop receiving emails 
from it, send an email to [email protected].
    >     >     >     To post to this group, send email to 
[email protected].
    >     >     >     Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     >     To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexcoCcw1ggw3jcEiVomApD19BaLVKcVsNLU8DSOFa0%2BEzA%40mail.gmail.com.
    >     >     >     For more options, visit 
https://groups.google.com/d/optout.
    >     >     >
    >     >     >
    >     >     >
    >     >     > --
    >     >     > SQLAlchemy -
    >     >     > The Python SQL Toolkit and Object Relational Mapper
    >     >     >
    >     >     > http://www.sqlalchemy.org/
    >     >     >
    >     >     > To post example code, please provide an MCVE: Minimal, 
Complete, and Verifiable Example.  See  http://stackoverflow.com/help/mcve for 
a full description.
    >     >     > ---
    >     >     > You received this message because you are subscribed to the 
Google Groups "sqlalchemy" group.
    >     >     > To unsubscribe from this group and stop receiving emails from 
it, send an email to [email protected].
    >     >     > To post to this group, send email to 
[email protected].
    >     >     > Visit this group at 
https://groups.google.com/group/sqlalchemy.
    >     >     > To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/2F82992D-69A9-496E-A09D-881F3112EA83%40gmail.com.
    >     >     > For more options, visit https://groups.google.com/d/optout.
    >     >
    >     >     --
    >     >     SQLAlchemy -
    >     >     The Python SQL Toolkit and Object Relational Mapper
    >     >
    >     >     http://www.sqlalchemy.org/
    >     >
    >     >     To post example code, please provide an MCVE: Minimal, 
Complete, and Verifiable Example.  See  http://stackoverflow.com/help/mcve for 
a full description.
    >     >     ---
    >     >     You received this message because you are subscribed to the 
Google Groups "sqlalchemy" group.
    >     >     To unsubscribe from this group and stop receiving emails from 
it, send an email to [email protected].
    >     >     To post to this group, send email to 
[email protected].
    >     >     Visit this group at https://groups.google.com/group/sqlalchemy.
    >     >     To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexe2LYymfKO%3DZS1uEFp_0ozJnscghjvfskWw7soah5gq1Q%40mail.gmail.com.
    >     >     For more options, visit https://groups.google.com/d/optout.
    >     >
    >     >
    >     > --
    >     > SQLAlchemy -
    >     > The Python SQL Toolkit and Object Relational Mapper
    >     >
    >     > http://www.sqlalchemy.org/
    >     >
    >     > To post example code, please provide an MCVE: Minimal, Complete, 
and Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
description.
    >     > ---
    >     > You received this message because you are subscribed to the Google 
Groups "sqlalchemy" group.
    >     > To unsubscribe from this group and stop receiving emails from it, 
send an email to [email protected].
    >     > To post to this group, send email to [email protected].
    >     > Visit this group at https://groups.google.com/group/sqlalchemy.
    >     > To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/C2E9AF04-9E54-4A08-871D-60B8AE4491C4%40gmail.com.
    >     > For more options, visit https://groups.google.com/d/optout.
    >
    >     --
    >     SQLAlchemy -
    >     The Python SQL Toolkit and Object Relational Mapper
    >
    >     http://www.sqlalchemy.org/
    >
    >     To post example code, please provide an MCVE: Minimal, Complete, and 
Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
description.
    >     ---
    >     You received this message because you are subscribed to the Google 
Groups "sqlalchemy" group.
    >     To unsubscribe from this group and stop receiving emails from it, 
send an email to [email protected].
    >     To post to this group, send email to [email protected].
    >     Visit this group at https://groups.google.com/group/sqlalchemy.
    >     To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexe2BNUfjX%3D8e-jhxejMD2V%2BT_QmOtr%3DS9tpQ1wD4Y0XJA%40mail.gmail.com.
    >     For more options, visit https://groups.google.com/d/optout.
    >
    >
    >
    > --
    > SQLAlchemy -
    > The Python SQL Toolkit and Object Relational Mapper
    >
    > http://www.sqlalchemy.org/
    >
    > To post example code, please provide an MCVE: Minimal, Complete, and 
Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
description.
    > ---
    > You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
    > To unsubscribe from this group and stop receiving emails from it, send an 
email to [email protected].
    > To post to this group, send email to [email protected].
    > Visit this group at https://groups.google.com/group/sqlalchemy.
    > To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CF1A5436-3672-4E9A-83BF-2506A19836CC%40gmail.com.
    > For more options, visit https://groups.google.com/d/optout.
    
    -- 
    SQLAlchemy - 
    The Python SQL Toolkit and Object Relational Mapper
    
    http://www.sqlalchemy.org/
    
    To post example code, please provide an MCVE: Minimal, Complete, and 
Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
description.
    --- 
    You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
    To unsubscribe from this group and stop receiving emails from it, send an 
email to [email protected].
    To post to this group, send email to [email protected].
    Visit this group at https://groups.google.com/group/sqlalchemy.
    To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexeD9g7PdJU37G%3DewnFbYOFY35LkkRd2i2dZU_b2F81O%2BA%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.
    


-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/48FD2A81-901B-4B0D-AB6F-8ABA794F9B82%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to