我正在尝试用psycopg2在一个我不是根用户的服务器中填充几个数据库(不知道它是否相关)。我的代码看起来像
import json
from psycopg2 import connect
cors = connect(user='jungal01', dbname='course')
req = connect(user="jungal01", dbname='requirement')
core = cors.cursor()
reqs = req.cursor()
with open('gened.json') as gens:
geneds = json.load(gens)
for i in range(len(geneds)):
core.execute('''insert into course (number, description, title)
values({0}, {1}, {2});''' .format(geneds[i]["number"], geneds[i]['description'], geneds[i]['title'] ))
reqs.execute('''insert into requirement (fulfills)
values({0});''' .format(geneds[i]['fulfills'] ))
db.commit()
当我执行代码时,会出现上面的pycopg2错误。我知道这些特定的数据库是存在的,但是我不明白为什么它不能连接到我的数据库。(旁敲侧击,我也不确定那个承诺声明。它应该在for循环中,还是在循环之外?它应该是特定于数据库的?)
请确保将目录名称作为数据库名称,而不是架构位于目录下。
目录是混乱的和相当不必要的。更多细节如下:What's the difference between a catalog and a schema in a relational database?
首先,您拥有的
db
不是一个定义的变量,因此您的代码不应该完全运行。下面是你应该如何连接。对于一个数据库,而不是一个表,通常的模式是输入数据库名,然后输入user/pass。
模式是关系数据库中的一个松散术语。表和数据库都有模式,但您似乎希望连接到表,而不是数据库。
因此,请尝试以下代码,尝试修复缩进和SQL注入问题--See this documentation
注意,首先必须在要连接的数据库中创建了这两个表。
相关问题 更多 >
编程相关推荐