因此,这里真正的问题是,要应用正确的单元处理器,您需要知道每列中有哪些数据。对于有效的 CSV 文件(每行的列数相同),这不是问题,但如果您正在处理可变列 CSV 文件,那就很棘手了。
如果像示例一样,只有 1 列是可选的,那么您只需计算读取的列数并使用适当的单元处理器阵列。没关系where该可选列是,因为它仍然是可预测的。
但是,如果多于 1 列是可选的,那么您就会遇到麻烦。例如,如果middleName
and city
在以下 CSV 文件中是可选的:
firstName,middleName,lastName,city
Philip,Fry,New York
可以理解为:
firstName="Philip", middleName="Fry", lastName="New York", city=null
or
firstName="Philip", middleName=null, lastName="Fry", city="New York"
这已经不再是可预测的了。您可以检查列中的数据以确定该列应代表什么(例如日期有/
's),但这不是很稳健,即使如此,您甚至可能需要阅读几行才能弄清楚。