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

 猴子捞月亮A_118 发布于 2022-10-26 20:22

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

author1 = row[1]

KeyError: 1

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

2 个回答
  • 你先把result打印出来试试

    2022-11-12 01:42 回答
  • 应该是result是一个字典结构,在python中需要用dict['Name']这样的形式使用吧。具体可百度字典用法。

    2022-11-12 01:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有