python3.5操作数据库中fetchall的问题
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
应该是result是一个字典结构,在python中需要用dict['Name']这样的形式使用吧。具体可百度字典用法。
你先把result打印出来试试