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

如何将CSV文件内字符串形式的列表转换为Python实际列表

错误原因及解决方案

错误本质

ast.literal_eval()触发语法错误的核心原因如下:

  • ast.literal_eval()仅支持解析符合Python语法规范的字面量表达式,合法的字符串元素列表需要给字符串添加单/双引号,比如["senior innovation manager"]才是可被识别的标准格式
  • 你CSV中存储的[senior innovation manager]没有给内部字符串加引号,ast解析时会将senior、innovation、manager识别为未定义的变量名,不符合字面量语法规则,直接触发AST编译失败

转换方案

根据实际需求选择对应转换方法即可:

场景1:方括号内整段文本为列表的唯一元素

期望得到结果为["senior innovation manager"],参考代码:

import pandas as pd

# 读取文件逻辑保持不变
df = pd.read_csv(file_path, sep=',', na_values='NA', encoding='latin-1')

raw_str = df['title'][0]
# 去除首尾方括号,清理字符串前后空白
content = raw_str.strip('[]').strip()
df['title'][0] = [content]

# 验证转换结果
print(df['title'][0])
print(type(df['title'][0]))

场景2:方括号内多元素以英文逗号分隔

如果实际数据格式为[senior innovation manager, data analyst, product director]这类多元素结构,期望得到多元素列表,参考代码:

import pandas as pd

df = pd.read_csv(file_path, sep=',', na_values='NA', encoding='latin-1')

raw_str = df['title'][0]
content = raw_str.strip('[]').strip()
# 按逗号分割后清理每个元素的空白,过滤空值
df['title'][0] = [item.strip() for item in content.split(',') if item.strip()]

# 验证转换结果
print(df['title'][0])
print(type(df['title'][0]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:02