You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的MySQLdb读取MySQL数据时如何去除类型标识?

解决MySQLdb查询结果带类型标识的问题

问题出在MySQLdb返回的结果集中,数据库的数值类型会被映射为Python的对象类型(比如整数转为long,DECIMAL字段转为Decimal对象),这些对象直接打印或拼接时会带上类型标识。要获取纯数据内容,需要将每个字段显式转换为字符串。

修改后的代码如下:

#!/usr/bin/python
import MySQLdb

db = MySQLdb.connect(host="--------",
                     user="-----",
                     passwd="xyz",
                     db="abc123")
cur = db.cursor()

outfil='..........'
# 使用with语句自动管理文件,避免手动关闭的疏漏
with open(outfil, "w") as f:
    cur.execute("SELECT * FROM aerodrome ORDER BY sequence")
    for row in cur.fetchall():
        # 将每行的每个元素转换为字符串,提取实际数据
        str_row = [str(item) for item in row]
        # 拼接为CSV格式并写入,添加换行符分隔行
        f.write(",".join(str_row) + "\n")

db.close()

关键修改点:

  • 用str(item)遍历每行的每个元素,将对象类型转为纯字符串值,去掉L、Decimal()这类标识
  • 使用with open(...)语句处理文件,自动完成文件关闭,更安全可靠
  • 给每行末尾添加\n,避免所有数据挤在同一行

内容的提问来源于stack exchange,提问作者Karel Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:02:42