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

如何在以Excel为数据源的Pandas中处理UTF-8编码并导入MongoDB

报错原因

你之前检索到的UTF-8相关解决方案不适用于该问题,本次报错和编码无关:

  • 你调用df1 = df1.astype('string')将全列转为pandas专属的String类型后,空值会被处理为<NA>,对应pandas._libs.missing.NAType类型
  • PyMongo的BSON编码器无法识别该非标准Python类型,因此抛出编码错误
解决方案

任选以下一种方法即可解决:

  1. 替换NAType为PyMongo支持的类型
    在转字典插入前,新增一行代码将所有NAType替换为Python原生的None(对应MongoDB的null类型),或者替换为空字符串:
# 替换为None,适配MongoDB的null存储
df1 = df1.where(pd.notnull(df1), None)
# 或者替换为空字符串,按需选择
# df1 = df1.fillna('')

后续插入逻辑保持不变即可。

  1. 直接使用你已生成的序列化结果
    你的代码中已经通过df1.T.to_json()做了一次JSON序列化,该过程会自动把NAType转为标准null,你可以直接插入该结果,无需再调用df1.to_dict('records'):
records = json.loads(df1.T.to_json()).values()
# 直接插入records即可,不用再次处理df
out_col.insert_many(records)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:39:02