87得票3回答
Python数据库API:fetchone vs fetchmany vs fetchall

今天我和一些同事讨论了Python的db-api中fetchone、fetchmany和fetchall的区别。 虽然每个API的具体实现可能会影响它们的使用场景,但总的来说,fetchone、fetchmany和fetchall分别适合哪些使用场景呢? 换句话说,以下三个方法是否等价?如...

80得票9回答
如何检查结果集是否为空?

我有一个查询语句没有返回结果,例如:'select * from TAB where 1 = 2'。 我想检查有多少行被返回,cursor.execute(query_sql) rs = cursor.fetchall() 我已经遇到了异常:"(0, 'No result set')" ...

55得票13回答
使用psycopg2转义Postgres中的SQL“LIKE”值

psycopg2是否有用于为Postgres转义LIKE操作数值的函数? 例如,我可能想要匹配以字符串“20% of all”开头的字符串,因此我想编写类似于以下内容的代码:sql = '... WHERE ... LIKE %(myvalue)s' cursor.fetchall(sql, ...

52得票7回答
Python sqlite3的事务处理

我正在尝试将一些使用sqlite数据库的代码移植到Python中,我正在尝试使事务正常工作,但我非常困惑。我之前在其他语言中经常使用sqlite,因为它很好用,但我现在无法弄清楚问题出在哪里。 这是我的测试数据库模式(将输入到sqlite3命令行工具)。BEGIN TRANSACTION; ...

48得票3回答
游标对象和连接对象的区别

我对Python为什么需要光标对象感到困惑。我知道JDBC,那里的数据库连接非常直观,但在Python中,我对光标对象感到困惑。此外,我怀疑cursor.close()和connection.close()函数在资源释放方面有什么区别。

44得票7回答
如何在Python中从SQL查询中获取单个结果?

在使用Python时,有没有优雅的方法从SQLite SELECT查询中获取单个结果? 例如:conn = sqlite3.connect('db_path.db') cursor=conn.cursor() cursor.execute("SELECT MAX(value) FRO...

26得票9回答
使用Python将JSON插入MySQL

我在Python中有一个JSON对象。 我正在使用Python DB-API和SimpleJson。 我尝试将json插入到MySQL表中。 目前我遇到了错误,我认为这是由于JSON对象中的单引号''引起的。 我该如何使用Python将我的JSON对象插入到MySQL中? 以下是我收到的...

20得票3回答
如何使用Python DB-API安全地生成SQL LIKE语句

我正在尝试使用Python的DB-API组装以下SQL语句:SELECT x FROM myTable WHERE x LIKE 'BEGINNING_OF_STRING%'; BEGINNING_OF_STRING应该是一个Python变量,通过DB-API安全地填充。我尝试过了。begin...

16得票1回答
当我迭代游标时,psycopg2在做什么?

我试图理解这段代码在幕后做了什么:import psycopg2 c = psycopg2.connect('db=some_db user=me').cursor() c.execute('select * from some_table') for row in c: pass ...

15得票4回答
Python DB-API: 如何处理不同的参数样式?

我正在实现一个使用数据库后端存储和查询本体的Python本体类。数据库模式是固定的(预先指定的),但我不知道正在使用哪种类型的数据库引擎。但是,我可以依赖于数据库引擎的Python接口使用Python DB-API 2.0 (PEP 249)的事实。一个简单的想法是让用户将符合PEP 249规...