优化代码def array_book(): # 创建游标 mycursor = mydb.cursor() # 执行查询操作 mycursor.execute("SELECT * FROM books") # 每次读取一行数据 while True: book_data = mycursor.fetchone() if book_data is None: break book = { "id": int(book_data[0]), # 序号 "btitle": book_data[1], # 书名 "bauthor": book_data[2], # 作者 "byu_data": book_data[3], # 出版时间 "bnumber": int(book_data[4]), # 总书籍数 "ISBN": book_data[5], # 书本编号 "type": book_data[6], # 书本类型 } books.append(book) print(books) mycursor.close()
时间: 2023-06-13 21:06:31 浏览: 111
books优化后的代码
可以使用fetchall()方法一次性获取所有结果,而不是每次只获取一行数据。这样可以减少数据库交互的次数,提高效率,代码如下:
```python
def array_book():
# 创建游标
mycursor = mydb.cursor()
# 执行查询操作
mycursor.execute("SELECT * FROM books")
# 获取所有查询结果
book_data = mycursor.fetchall()
# 遍历结果集
for data in book_data:
book = {
"id": int(data[0]), # 序号
"btitle": data[1], # 书名
"bauthor": data[2], # 作者
"byu_data": data[3], # 出版时间
"bnumber": int(data[4]), # 总书籍数
"ISBN": data[5], # 书本编号
"type": data[6], # 书本类型
}
books.append(book)
print(books)
mycursor.close()
```
此外,建议将数据库连接和关闭放在函数的外部,避免每次执行函数都要连接和关闭数据库的开销。
阅读全文