Csvhelper无法正确解析列表

时间:2017-01-22 00:23:23

标签: c# csv csvhelper

我正在尝试将提供的CSV文本读入带有CSVHelper的列表中,但它会跳过一些记录。

我将图片中的记录设置为红色,以便使我的问题更加清晰,它只将这些红色字段(总共52个)添加到列表中,但不添加逗号分隔后的文本,例如:488273,1482, 14526113。它增加了第一个,但跳过了1482和14526113.我也需要添加它们。

代码

csv.Configuration.HasHeaderRecord = false;
csv.Configuration.TrimFields = false;

List<int> playerInfo = csv.GetRecords<int>().ToList();

图片

红色标记不仅是那些,而是为了给出一个考试,它是关于所有的第一个记录。 CSV

2 个答案:

答案 0 :(得分:0)

return render(
    request,
    'app/index.html',
    {
        'title':'Home Page',
        'year':datetime.now().year,
    }
)

答案 1 :(得分:0)

当您致电csv.GetRecords<T>()时,CSVHelper会将整个的每一行(行)映射到指定的类型。您正在映射到int类型。 CSV的每一行中有3个值。这3个值无法映射到单个int。 CSVHelper只是映射每行中的第一条记录。

如果要使用CsvReader,则应定义自定义类(具有3个int属性)并使用csv.GetRecords<MyCustomCsvClass>()。您可能还需要/需要创建自定义CsvClassMap。 CSVHelper文档非常好:Mapping By Index

或者,您可以使用不进行映射或类型转换的CsvParser class。它只为每行返回string[]