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

如何将MariaDB中BLOB形式的CSV数据读取为Pandas DataFrame

解决MariaDB中BLOB存储的CSV转独立Pandas DataFrame问题

问题分析

你的MariaDB中Data列以BLOB形式存储CSV文本,每个单元格对应一段CSV内容,目标是将每个单元格的内容转为独立的Pandas DataFrame。之前的代码错误在于:

  • 使用raw.to_string(index=False)将整个查询结果转为字符串,混了Name列和Data列的内容,导致无法正确解析CSV
  • BLOB读取后是字节对象,未解码为可处理的字符串

修正后的代码

import pandas as pd
from io import StringIO

# 读取数据库查询结果
raw = pd.read_sql_query(query, engine)

# 用来存储每个单元格对应的独立DataFrame
df_collection = []

# 遍历每一行,处理每个Data单元格的CSV内容
for _, row in raw.iterrows():
    # 将BLOB字节数据解码为字符串,编码根据实际CSV调整(比如gbk)
    csv_content = row['Data'].decode('utf-8')
    # 用StringIO包装CSV字符串,再读取为DataFrame
    single_dataframe = pd.read_csv(StringIO(csv_content), sep=',')
    df_collection.append(single_dataframe)

# 访问单个DataFrame:比如取第一个单元格的结果 df_collection[0]

关键说明

  1. BLOB解码:从数据库读出的BLOB是字节类型,必须用decode()转为字符串,编码要和CSV文件的编码一致(常见utf-8、gbk)
  2. 逐单元格处理:通过iterrows()遍历每一行,单独提取每个Data单元格的内容,避免混合其他列的数据
  3. CSV解析:用StringIO把字符串包装成类文件对象,让pd.read_csv可以正常解析CSV格式的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:55:19