有没有办法,我可以解析一个逗号分隔的字符串,而不使用像csv.reader(..)一样的花哨?我可以使用split(',')
函数,但在有效列值本身包含逗号时不起作用。 csv库有解析正确处理上述特例的CSV文件的读者,但是我不能使用这些文件,因为我需要解析一个字符串。但是,如果Python CSV允许解析单个字符串本身,那么这对我来说是新闻。解析一个CSV字符串?
5
A
回答
11
以在文档中的csv
模块, 说,仔细一看:
reader(...)
csv_reader = reader(iterable [, dialect='excel']
[optional keyword args])
for row in csv_reader:
process(row)
The "iterable" argument can be any object that returns a line
of input for each iteration, such as a file object or a list. The
optional "dialect" parameter is discussed below. The function
also accepts optional keyword arguments which override settings
provided by the dialect.
所以,如果你有字符串:
>>> s = '"this is", "a test", "of the csv", "parser"'
而且你想“一个对象返回一行每个 迭代”的输入,你可以包装你的字符串列表:
>>> r = csv.reader([s])
>>> list(r)
[['this is', 'a test', 'of the csv parser']]
这就是你如何分析与csv
模块的字符串。
9
您仍然可以使用csv
解析单个字符串。使用StringIO的写一个字符串buffer(也称为内存中的文件):
import csv
from StringIO import StringIO
s = "your string"
buff = StringIO(s)
reader = csv.reader(buff)
for line in reader:
print(line)
+0
对于Python 3,使用'from io import StringIO'请参阅[这里](https://docs.python.org/3/library/io.html#text-io) –
相关问题
- 1. 解析一个字符串
- 2. 从一个CSV文件解析字符串到一个整数
- 3. 从CSV解析数组到字符串?
- 4. 从字符串解析Powershell中的CSV?
- 5. 解析字符串中CSV使用
- 6. Python用CSV解析GPRMC字符串
- 7. 将一个字符串解析为两个双重字符串
- 8. 将一个字符串解析为多个字符串
- 9. 解析解析字符串
- 10. 解析单个字符串
- 11. 解析这个字符串
- 12. 可可 - 解析一个JSON字符串
- 13. 解析D中的一个字符串
- 14. Makefile解析一个字符串
- 15. 解析字符串到一个数组
- 16. 解析MIPS中的一个字符串
- 17. 解析一个字符串到JSON
- 18. C解析一个字符串划分
- 19. XML解析一个字符串
- 20. 解析一个字符串到日期
- 21. 解析一个大的JSON字符串
- 22. 解析一个字符一个字符串
- 23. 字符串解析多个字符
- 24. 解析字符串并减去一个子字符串
- 25. 解析一个字符串流成字符串和双打
- 26. 解析字符串
- 27. 解析字符串
- 28. 字符串解析
- 29. 解析字符串
- 30. 解析字符串
我想它会更优雅'iter(s)'作为一般迭代器而不是'[s]'(指定一个列表)。但是你有我的+1 – RafaelC
如果字符串在值的内部引用了换行符,这可能不会起作用; @ alecxe的答案更有意义 – swooby