有沒有辦法,我可以解析一個逗號分隔的字符串,而不使用像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. 將一個字符串解析爲兩個雙重字符串
- 6. 將一個字符串解析爲多個字符串
- 7. 解析這個字符串
- 8. XML解析一個字符串
- 9. 解析一個大的JSON字符串
- 10. 解析一個字符串到JSON
- 11. 解析一個字符串到日期
- 12. 解析一個字符一個字符串
- 13. 解析一個字符串流成字符串和雙打
- 14. 解析字符串並減去一個子字符串
- 15. 解析字符串
- 16. 解析字符串
- 17. 解析字符串
- 18. JSON字符串解析每個字符作爲一個對象
- 19. 解析一個CSV字符串,同時忽略單個列內的逗號
- 20. 用boost spirit x3解析一個數字到一個字符串
- 21. 解析字符串和子字符串
- 22. 解析字符串 - 從字符串
- 23. 解析字符串 - Http字符串
- 24. 解析數字字符串
- 25. 分別解析E164字符串的第一個字符在python
- 26. Perl解析帶有一個或多個字段的字符串
- 27. 解析一個字符串以打開一個URL
- 28. 解析一個字符串到一個泛型枚舉類型
- 29. 將一個int簡單解析爲一個字符串
- 30. 將一個對象解析爲一個字符串
我想它會更優雅'iter(s)'作爲一般迭代器而不是'[s]'(指定一個列表)。但是你有我的+1 – RafaelC
如果字符串在值的內部引用了換行符,這可能不會起作用; @ alecxe的答案更有意義 – swooby