为何索引位置输出其他索引数据?CSV字段提取异常求助
问题原因及解决办法
问题根源
你手动用split(',')分割CSV内容的方式存在问题——CSV里的部分字段(比如村民的对话文本)本身包含逗号,且这些字段会被引号包裹。直接按逗号分割会破坏带引号字段的结构,导致列索引错位,原本属于其他列的文本(就是你看到的那些随机语句)被错误当成了style列的内容。
解决方案
不要自己写分割逻辑,用Python专门处理CSV的工具,它们能自动识别带引号的字段,避免列错位问题。
方法1:使用Python内置csv模块
import csv style = [] with open('villagers.csv', 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: # 替换成CSV表头中对应style 1和style 2的准确列名 style.append(row['Style 1']) style.append(row['Style 2']) print(style)
如果不确定表头的准确名称,可以先打印表头确认:
import csv with open('villagers.csv', 'r', encoding='utf-8') as f: reader = csv.DictReader(f) print(reader.fieldnames)
方法2:使用pandas(更简洁)
先安装pandas:pip install pandas,再运行以下代码:
import pandas as pd df = pd.read_csv('villagers.csv') style = df[['Style 1', 'Style 2']].values.flatten().tolist() print(style)
内容的提问来源于stack exchange,提问作者FJFJFJJJ
相关产品推荐
相关产品推荐

