这不是我想要的数据格式, 我想让每一行数据都有表头信息的描述, 类似于字典的形式
时间: 2024-03-12 22:48:13 浏览: 98
好的,你想要的数据格式类似于字典的形式,那么你可以使用 `cursor.description` 获取表头信息,然后将每一行查询结果转换为字典格式,如下所示:
```python
import pymysql
# 连接 MySQL 数据库
conn = pymysql.connect(
host='localhost', # MySQL 服务器地址
port=3306, # MySQL 服务器端口号
user='root', # MySQL 用户名
password='password', # MySQL 密码
database='testdb' # 数据库名称
)
# 创建游标对象
cursor = conn.cursor()
# 执行查询语句
cursor.execute('SELECT * FROM users')
# 获取表头信息
headers = [desc[0] for desc in cursor.description]
# 获取查询结果
results = cursor.fetchall()
# 将每一行查询结果转换为字典格式
rows = []
for row in results:
row_dict = {}
for i in range(len(headers)):
row_dict[headers[i]] = row[i]
rows.append(row_dict)
# 打印查询结果
for row in rows:
print(row)
# 关闭游标和连接
cursor.close()
conn.close()
```
在上面的代码中,我们把每一行查询结果都转换为字典格式,字典的 key 是表头信息中的字段名,value 是该字段在查询结果中对应的值。最终结果是一个列表,每个元素都是一个字典,表示一条记录的所有字段及其对应的值。
如果 `users` 表中有如下数据:
```
+----+--------+---------+
| id | name | age |
+----+--------+---------+
| 1 | Alice | 25 |
| 2 | Bob | 30 |
| 3 | Charlie| 35 |
+----+--------+---------+
```
那么以上代码的输出结果应该是:
```
{'id': 1, 'name': 'Alice', 'age': 25}
{'id': 2, 'name': 'Bob', 'age': 30}
{'id': 3, 'name': 'Charlie', 'age': 35}
```
每一行数据都有表头信息的描述,以字典的形式呈现。
阅读全文