【问题标题】:python parse csv to listspython将csv解析为列表
【发布时间】:2011-10-25 21:41:29
【问题描述】:

我有一个 csv 文件,我想将数据解析到列表中。 所以我正在使用 python csv 模块来读取它 所以基本上如下:

import csv
fin = csv.reader(open(path,'rb'),delimiter=' ',quotechar='|')
print fin[0]
#gives the following
['"1239","2249.00","1","3","2011-02-20"']

#lets say i do the following
ele = str(fin[0])
ele = ele.strip().split(',')    
print ele
#gives me following  
['[\'"1239"', '"2249.00"', '"1"', '"3"', '"2011-02-20"\']']

现在 ele[0] 给我 --> 输出---> ['"1239"

我该如何摆脱那个 [' 最后,我想做的是得到 1239 并将其转换为整数..? 为什么会发生这种情况的任何线索 谢谢

编辑:*没关系..感谢第一条评论解决*

【问题讨论】:

  • 为什么将分隔符设置为' ',而这些实际上似乎是逗号分隔值?

标签: python csv


【解决方案1】:

将分隔符更改为“,”,您将从 csv 阅读器中获得这些值的列表。

【讨论】:

    【解决方案2】:

    这是因为您将列表转换为字符串,因此无需这样做。获取列表的第一个元素(在本例中是一个字符串)并解析它:

    >>> a = ['"1239","2249.00","1","3","2011-02-20"']
    >>> a
    ['"1239","2249.00","1","3","2011-02-20"']
    >>> a[0]
    '"1239","2249.00","1","3","2011-02-20"'
    >>> b = a[0].replace('"', '').split(',')
    >>> b[-1]
    '2011-02-20'
    

    当然,在替换和拆分字符串方法之前,您应该检查类型是否为字符串,如果不是则处理异常。

    Blahdiblah 也是正确的,你的分隔符可能是错误的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      相关资源
      最近更新 更多