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

Python如何从CSV存储的列表字符串中提取整数内容并去除多余符号

你当前遇到的输出异常本质是将CSV读取到的列表格式字符串直接当做可迭代对象遍历,字符串的每个字符会被单独迭代输出,所以会出现引号、括号单独特性,大于10的数字被拆分为单个字符的问题,你之前直接用replace处理后没有把字符串转为真实列表,所以问题没有解决。

方案1:使用标准库ast安全转换(推荐)

ast.literal_eval可以安全将符合Python字面量格式的字符串转为对应类型的对象,不需要手动处理符号,兼容多位数、不同引号格式的场景。
示例代码:

import ast
import csv

# 读取CSV示例
with open('你的文件路径.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        # 假设列表字符串存在每行的第一列
        str_list = row[0]
        # 将字符串转为真实的列表
        real_list = ast.literal_eval(str_list)
        # 转为数字列表
        num_list = [int(item) for item in real_list]
        # 循环打印不会出现拆分问题
        for num in num_list:
            print(num)

方案2:手动解析字符串(无需额外导入)

如果你不想引入ast库,也可以手动处理字符串的符号后拆分:
示例代码:

import csv

with open('你的文件路径.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        str_list = row[0]
        # 去除首尾的方括号
        str_content = str_list.strip('[]')
        # 按逗号拆分每个元素
        items = str_content.split(',')
        # 逐个去除元素两侧的空格、单引号、双引号后转int
        num_list = [int(item.strip(" '\"")) for item in items]
        for num in num_list:
            print(num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:27:06