【发布时间】:2012-11-22 20:04:57
【问题描述】:
我需要将 JSON 数据从 tornado 插入到 postgres,所以这里的测试是这样的:
from psycopg2 import connect
conn = connect("user='pguser' host='localhost' dbname='pgdb' password='pgpass'")
cursor = conn.cursor()
data = '[{"id":"sdf","name":"wqe","author":"vb"}]'
for row in eval(data):
print row
cursor.execute("""INSERT INTO books(id,name,author) VALUES('%s','%s','%s')""" % \
(row['id'], row['name'], row['author'])
)
>>> cursor.execute("SELECT * FROM books")
>>> cursor.fetchall()
[('sdf', 'wqe', 'vb')]
>>>
$> psql -d pgdb -U pguser -W
Password for user pguser:
psql (9.1.6)
Type "help" for help.
pgdb=> select * from books;
id | name | author
----+------+--------
(0 rows)
正如您在 python shell 中执行 select 后看到的,有一些数据,但在 psql 中有
0行!我可能做错了什么?
Python 2.7.2+
【问题讨论】:
-
将 GRANT ALL PRIVILEGES ON DATABASE pgdb 授予 pguser;在 hba.conf 中更改对等点以信任并没有帮助
-
这两个都是试图解决你没有的问题。如果其中任何一个出现问题,您都会收到权限错误。
标签: python postgresql psycopg2