python mysql: 连接游标没有执行属性

python mysql: connection cursor has no execute attribute

在尝试一些 mysql 巫术时,弹出以下错误。我读 这里的其他问题和建议是使用游标进行连接,恕我直言,我已经完成了。那么这里可能出了什么问题?

#!/usr/bin/env python

    import os
    import sys
    import MySQLdb as db
    try:
        import json
        from json import JSONDecodeError
    except ImportError:
        import simplejson as json
        from simplejson import JSONDecodeError

    connections = {
        'conn1': db.connect('nimmsag_a', 'aix_regread', 'cmdbuser', 'aix_registry'),
        'conn2': db.connect('localhost', 'ansible', 'ansible', 'ansible_inv')
    }

    connections['conn1'].cursor.execute('SELECT * FROM TABLES;')
    connections['conn2'].cursor.execute('SELECT * FROM TABLES;')

    [conn.close() for key, conn in connections.items()]

root@lpgaixmgmtlx01:/root>./reg2inv.py
Traceback (most recent call last):
  File "./reg2inv.py", line 18, in <module>
    connections['conn1'].cursor.execute('SELECT * FROM TABLES;')
AttributeError: 'function' object has no attribute 'execute'

As documented - 并在追溯中的所有字母中拼写 - connection.cursor 是 returns 一个 Cursor 对象的函数。您必须先通过调用 connection.cursor() 获取游标,然后 执行您的查询:

c1 = connections['conn1'].cursor()
c1.execute('SELECT * FROM TABLES')