代码之家  ›  专栏  ›  技术社区  ›  Jim B

Regexp,忽略双引号中的分隔符[重复]

  •  0
  • Jim B  · 技术社区  · 4 年前

    有人知道一个简单的库或函数来解析csv编码的字符串并将其转换为数组或字典吗?

    我想我不想要内置的 csv module 因为在我看到的所有示例中,它都采用文件路径,而不是字符串。

    0 回复  |  直到 9 年前
        1
  •  0
  •   Andrei    2 年前

    您可以使用以下命令将字符串转换为文件对象 io.StringIO 然后将其传递给 csv 模块:

    from io import StringIO
    import csv
    
    scsv = """text,with,Polish,non-Latin,letters
    1,2,3,4,5,6
    a,b,c,d,e,f
    gęś,zółty,wąż,idzie,wąską,dróżką,
    """
    
    f = StringIO(scsv)
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        print('\t'.join(row))
    

    更简单的版本 split() 关于新品:

    reader = csv.reader(scsv.split('\n'), delimiter=',')
    for row in reader:
        print('\t'.join(row))
    

    或者你可以简单地 split() 使用以下命令将此字符串换行 \n 作为分隔符,然后 split() 每行都有值,但这样你必须注意引用,所以使用 csv 模块是首选。

    On Python 2 你必须导入 StringIO 作为

    from StringIO import StringIO
    

    相反。