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

如何读取含JSON列的CSV数据并保留字典列表格式

解决CSV中JSON数组字段的解析问题

你的CSV数据里,col3字段是被双引号包裹且内部带转义字符的JSON数组字符串,直接用pd.read_csv()读取会把它识别成普通字符串,没法得到预期的字典列表格式。下面是两种可行的解决办法:

方法一:读取后批量解析字段

import pandas as pd
import json

# 读取CSV,skipinitialspace=True跳过逗号后的空格,避免字段带冗余空格
df = pd.read_csv("your_file.csv", skipinitialspace=True)

# 解析col3:先去掉首尾双引号,再转成字典列表
df["col3"] = df["col3"].apply(lambda x: json.loads(x.strip('"')) if pd.notna(x) else x)

方法二:读取时直接指定转换器

import pandas as pd
import json

def parse_col3(s):
    if pd.isna(s):
        return s
    # 去除首尾双引号后解析JSON
    return json.loads(s.strip('"'))

# 读取时给col3指定转换函数
df = pd.read_csv("your_file.csv", skipinitialspace=True, converters={"col3": parse_col3})

特殊情况处理

如果col3里的JSON是非标准格式(比如键名没加双引号,像col33:1),json.loads会解析失败,这时候可以用ast.literal_eval替代:

import pandas as pd
import ast

def parse_col3(s):
    if pd.isna(s):
        return s
    return ast.literal_eval(s.strip('"'))

df = pd.read_csv("your_file.csv", skipinitialspace=True, converters={"col3": parse_col3})

执行完上述代码后,col3字段就能被正确解析成字典列表格式,符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:40:55