python读取mysql中数据保存至列表

本文详细介绍了如何使用Python连接MySQL数据库进行数据查询,并展示了将查询结果转换为列表的具体方法,包括对邮件地址和姓名数据的处理。此外,文章还讨论了如何遍历和输出查询结果,以及关闭数据库连接的注意事项。

# -*- coding:utf-8 -*-
import MySQLdb

#库名:python;表名:students

conn = MySQLdb.connect(host='localhost',user='root',passwd='',db='python',charset='utf8')
cursor = conn.cursor()    
count = cursor.execute('select mail from students')    

mail_list=[]
#获取所有结果     
results = cursor.fetchall()
result=list(results)    
for r in result:    
    #print 'mail:%s ' % r   
    mail_list.append(('<span style="color:#ff0000;">%s' % r</span>))
print mail_list

#游标归零,默认mode='relative'
cursor.scroll(0,mode='absolute') 
count = cursor.execute('select name from students') 

name_list=[]
results=cursor.fetchall()
result=list(results)
for r in result:
    #print '%s' % r
    #print type('%s' % r)
    name_list.append(('%s' % r))
#for i in range(6):
#    print name_list[i]

conn.close()   

以上是代码。

有一些注意点:

首先,python读取mysql数据需要调用MySQLdb模块。

results=cursor.fetchall()
result=list(results)
这个地方由于fetchall方法返回的一个元组,而在后续操作(另一段代码)中,需要的是列表形式的数据,所以将其转换为list类型。

for r in result:    
    #print 'mail:%s ' % r   
    mail_list.append((<span style="background-color: rgb(255, 0, 0);">'%s' % r</span>))
print mail_list
红色代码部分是用来格式化 r 的,因为如果不这样的,列表中的项是这样的'u'xxxx@xxxx.com'',说实话,我也没想到其他什么好方法,自己在字符串处理和编码的格式这一块的基础好弱!!暂时先这样吧…回去好好巩固基础…>_<


最后,如果列表中有中文的话,使用循环输出就可以了,在后续操作中直接使用下标运算符即可。

### 使用 Python 连接 MySQL读取表格数据使用 PythonMySQL 数据库中读取数据,通常会借助 `mysql-connector-python` 或者其他类似的库来完成这一任务。以下是详细的说明以及示例代码。 #### 安装依赖库 在开始之前,需要安装必要的库。可以通过 pip 命令安装 `mysql-connector-python` 库: ```bash pip install mysql-connector-python ``` #### 示例代码:连接 MySQL读取数据 下面是一个完整的例子,展示如何使用 Python 连接到 MySQL 数据库并从中读取数据: ```python import mysql.connector from mysql.connector import Error try: # 创建数据库连接 connection = mysql.connector.connect( host='localhost', # 主机名 database='your_database', # 数据库名称 user='your_username', # 用户名 password='your_password' # 密码 ) if connection.is_connected(): db_info = connection.get_server_info() print(f"Connected to MySQL Server version {db_info}") cursor = connection.cursor() # 创建游标对象 query = "SELECT * FROM your_table_name;" # SQL 查询语句 cursor.execute(query) # 执行查询 records = cursor.fetchall() # 获取所有记录 print("Total number of rows in table:", cursor.rowcount) # 遍历结果集并打印每一行的数据 for row in records: print(row) except Error as e: print(f"Error while connecting to MySQL: {e}") finally: if (connection.is_connected()): cursor.close() # 关闭游标 connection.close() # 断开连接 print("MySQL connection is closed") ``` 上述代码展示了如何建立与 MySQL 的连接、执行查询并将结果显示出来[^1]。 --- #### 将查询结果保存到 TXT 文件 如果想把查询的结果存储到本地的一个 `.txt` 文件中,则可以在获取到数据之后追加如下逻辑: ```python with open('output.txt', 'w') as file: for row in records: file.write(str(row) + '\n') print("Data has been written into output.txt successfully.") ``` 这段代码会在当前目录下生成名为 `output.txt` 的文件,并将每一条记录按照行的形式写入其中。 --- #### 提取数据至 Excel 文件 除了导出为纯文本外,还可以利用 Pandas 和 Openpyxl 来进一步处理这些数据并将其转换成 Excel 表格形式: ```python import pandas as pd df = pd.DataFrame(records, columns=cursor.column_names) df.to_excel('output.xlsx', index=False) print("Data has been exported to output.xlsx successfully.") ``` 这里我们先构建了一个 DataFrame 对象用于表示结构化的二维数组,随后调用了其方法直接输出到了指定路径下的 XLSX 文件里[^3]。 --- ### 总结 通过以上步骤可以看出,在实际开发过程中可以根据需求灵活调整所使用的工具链;无论是简单的日志记录还是复杂的报表生成功能都可以基于此基础框架扩展实现更多功能[^4]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值