Python csv字符串到数组有人知道一个简单的库或函数来解析csv编码的字符串并将其转换为数组或字典吗?我不认为我想要内置的csv模块,因为在我看到的所有示例中都采用了文件路径,而不是字符串。
3 回答

三国纷争
TA贡献1804条经验 获得超7个赞
我会用StringIO
:
try: # for Python 2.x from StringIO import StringIOexcept ImportError: # for Python 3.x from io import StringIOimport 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
首选使用模块。

明月笑刀无情
TA贡献1828条经验 获得超4个赞
简单 - csv模块也适用于列表:
>>> a=["1,2,3","4,5,6"] # or a = "1,2,3\n4,5,6".split('\n')
>>> import csv
>>> x = csv.reader(a)
>>> list(x)
[['1', '2', '3'], ['4', '5', '6']]
添加回答
举报
0/150
提交
取消