回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图通过使用我编写的函数将pandas数据帧中的信息插入到数据库表中:</p>
<pre><code>def insert(table_name="", name="", genere="", year=1, impd_rating=float(1)):
conn = psycopg2.connect("dbname='database1' user='postgres' password='postgres333' host='localhost' port=5433 ")
cur = conn.cursor()
cur.execute("INSERT INTO %s VALUES %s,%s,%s,%s" % (table_name, name, genere, year, impd_rating))
conn.commit()
conn.close()
</code></pre>
<p>当我试图像这样使用这个函数时:</p>
^{pr2}$
<p>我得到以下语法错误:</p>
<pre><code>SyntaxError: invalid syntax
PS D:\tito\scripts\database training> python .\postgres_script.py
Traceback (most recent call last):
File ".\postgres_script.py", line 56, in <module>insert (impd_rating=float(DF['idbm_rating'][b]),year=int(DF['year'][b]),name=str(DF['name'][b]),genere=str(DF['genere'][b]),table_name='test_movies')
File ".\postgres_script.py", line 15, in insert
cur.execute("INSERT INTO %s VALUES %s,%s,%s,%s" % (table_name ,name ,genere , year,impd_rating))
psycopg2.ProgrammingError: syntax error at or near "Avatar"
LINE 1: INSERT INTO test_movies VALUES Avatar,action,2009,7.9
</code></pre>
<p>我还试图将str替换方法从<code>%s</code>改为{<cd2>}
但我也犯了同样的错误。在</p>