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

Pandas.read_csv读取截断至50字符,无法解析CSV嵌套列表数据

问题原因及解决方法

问题原因

你遇到的字符串截断是因为pandas的to_string()方法默认会对过长的字符串进行截断(默认显示长度限制为50),导致得到的是不完整的列表字符串,因此ast.literal_eval解析时触发了unterminated string literal语法错误。

替代解决方法

方法1:逐行解析嵌套列表

不要将整个Series转为字符串,而是对每一行的Bids值单独解析:

import pandas as pd
import ast

df = pd.read_csv('C:/Users/Ethan/Desktop/csv/test.csv', names=['E','ID','Bids','Asks'])
# 对Bids列的每个元素执行解析,再转为普通列表
bids_list = df['Bids'].apply(ast.literal_eval).tolist()
# 此时bids_list可直接用于zip、map等操作

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

在读取阶段就完成嵌套列表的解析,效率更高:

import pandas as pd
import ast

def parse_nested_list(s):
    # 可选:添加预处理,比如去除首尾空格
    return ast.literal_eval(s.strip())

df = pd.read_csv(
    'C:/Users/Ethan/Desktop/csv/test.csv',
    names=['E','ID','Bids','Asks'],
    # 为Bids和Asks列指定解析函数
    converters={'Bids': parse_nested_list, 'Asks': parse_nested_list}
)
# 转为普通列表
bids_list = df['Bids'].tolist()

额外注意

如果CSV中的嵌套列表字符串存在格式瑕疵(比如多余空格、引号不匹配),可以在解析函数中增加预处理逻辑,确保字符串符合Python列表语法规范。

内容的提问来源于stack exchange,提问作者Philip C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:50:10