python3.5操作数据库中fetchall的问题

发布于 2022-09-03 23:46:17 字数 1223 浏览 19 评论 0

import pymysql.cursors
import networkx as nx

Connect to the database

connection = pymysql.connect(host='localhost',

                         port=3306,
                         user='root',
                         password='',
                         db='shortest',
                         charset='utf8mb4',
                         cursorclass=pymysql.cursors.DictCursor)

执行sql语句

try:

    cursor = connection.cursor()
    # 执行sql语句,进行查询
    sql = 'SELECT author1,author2,year FROM shortest WHERE id < 200'
    cursor.execute(sql)
    # 获取查询结果
    result = cursor.fetchall()
    for row in result:
        author1 = row[1]
        author2 = row[2]
        year = row[3]
        # 打印结果
        print
        "auther1=%s,author2=%s,year=%s" % \
        (myauther1, myauther2, myyear)
    # 没有设置默认自动提交,需要主动提交,以保存所执行的语句
    connection.commit()

finally:

connection.close();

这个代码我感觉没有问题,但是编译器却报错!!!
Traceback (most recent call last):
File "E:/Python Work/beta1/test.py", line 21, in <module>

author1 = row[1]

KeyError: 1

希望高手可以解释指点一下,谢谢啦!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月染过的梦 2022-09-10 23:46:17

应该是result是一个字典结构,在python中需要用dict['Name']这样的形式使用吧。具体可百度字典用法。

寄居者 2022-09-10 23:46:17

你先把result打印出来试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文