繁体   English   中英

使用 psycopg2 将数据从 python 写入 postgreSQL 时遇到问题

[英]Trouble writing data from python to postgreSQL with psycopg2

我正在尝试使用psycopg2将数据从 python shell 插入到 postgresql 数据库中。 我正在尝试将以下数据库迁移到本地 postgreSQL 文件: http ://www3.inegi.org.mx/sistemas/mapa/denue/default.aspx。 工作流的简化示例如下所示:

import psycopg2 
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

DB_CONN_INEGI = 'host=localhost user=postgres password=password port=5432 dbname=inegi'

conn = psycopg2.connect(DB_CONN_INEGI)
conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cursor = conn.cursor()

然后我执行这个命令将一些值插入到表中:

cursor.execute("INSERT INTO denoue VALUES %s;" % tmp)

这执行得很好,但是当我检查记录数时:

cursor.execute('SELECT COUNT(*) FROM denoue;')

这不返回任何内容( None )。 我可以一遍又一遍地运行上面的调用,但结果总是一样的——似乎没有数据被添加到表中。

我错过了什么明显的东西吗? 抱歉缺少一个快速的工作示例——如果这对这里有用的话,我可以尝试快速模拟一个在本地数据库上运行的模型。

tmp看起来像这样:

"(40740, 'ZONA MILITAR', 'SECRETAR\\xc3\\x8dA DE LA DEFENSA NACIONAL', 931410, 'Impartici\\xc3\\xb3n de justicia y mantenimiento de la seguridad y el orden p\\xc3\\xbablico', '11 a 30 personas', 'CALLE', 'R\\xc3\\x8dO LERMA', 'CALLE', 'R\\xc3\\x8dO SENA', 'CALLE', 'R\\xc3\\x8dO \\xc3\\x89UFRATES', 'CALLE', 'R\\xc3\\x8dO LERMA', 100.0, 'null', 'null', 'null', 'null', 'null', 'FRACCIONAMIENTO', 'COLINAS DEL R\\xc3\\x8dO', 'null', 'null', 'null', 20010.0, 1, 'AGUASCALIENTES', 1, 'AGUASCALIENTES', 1, 'Aguascalientes', '2013', 25, 'null', 'null', 'null', 'Fijo', 21.89341096, -102.32335734, 'DICIEMBRE 2014')"
cursor.execute('SELECT COUNT(*) FROM denoue;')

这实际上会执行一个查询并返回None 要获取查询结果,您应该使用fetchone()方法:

results_count = cursor.fetchone()[0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM