Python csv字符串转数组
有人知道一个简单的库或函数来解析 csv 编码字符串并将其转换为数组或字典吗?
我不认为我想要内置 csv 模块 因为在所有示例中我'我们已经看到它需要文件路径,而不是字符串。
Anyone know of a simple library or function to parse a csv encoded string and turn it into an array or dictionary?
I don't think I want the built in csv module because in all the examples I've seen that takes filepaths, not strings.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
您可以使用
io.StringIO
然后将其传递给csv
模块:更简单的版本,在换行符上使用
split()
:或者您可以简单地
split()
> 使用\n
作为分隔符将该字符串分成行,然后使用split()
将每一行分成值,但这样您必须注意引用,因此使用csv
模块是首选。在 Python 2 上,您必须导入
StringIO
作为替代。
You can convert a string to a file object using
io.StringIO
and then pass that to thecsv
module:simpler version with
split()
on newlines:Or you can simply
split()
this string into lines using\n
as separator, and thensplit()
each line into values, but this way you must be aware of quoting, so usingcsv
module is preferred.On Python 2 you have to import
StringIO
asinstead.
简单 - csv 模块也适用于列表:
Simple - the csv module works with lists, too:
csv.reader()
的官方文档 https://docs .python.org/2/library/csv.html 非常有帮助,它说The official doc for
csv.reader()
https://docs.python.org/2/library/csv.html is very helpful, which says根据文档:
只需将字符串转换为单个元素列表即可。
当这个示例明确地出现在文档中时,导入 StringIO 对我来说似乎有点过多。
Per the documentation:
Just turn your string into a single element list.
Importing StringIO seems a bit excessive to me when this example is explicitly in the docs.
正如其他人已经指出的那样,Python 包含一个用于读取和写入 CSV 文件的模块。只要输入字符保持在 ASCII 限制范围内,它就可以很好地工作。如果您想处理其他编码,则需要更多工作。
csv 模块的 Python 文档 实现了一个扩展csv.reader,它使用相同的接口,但可以处理其他编码并返回 unicode 字符串。只需复制并粘贴文档中的代码即可。之后,您可以像这样处理 CSV 文件:
As others have already pointed out, Python includes a module to read and write CSV files. It works pretty well as long as the input characters stay within ASCII limits. In case you want to process other encodings, more work is needed.
The Python documentation for the csv module implements an extension of csv.reader, which uses the same interface but can handle other encodings and returns unicode strings. Just copy and paste the code from the documentation. After that, you can process a CSV file like this:
不是通用的 CSV 解析器,但可用于带有逗号的简单字符串。
要解析 CSV 文件:
Not a generic CSV parser but usable for simple strings with commas.
To parse a CSV file:
https://docs.python.org/2/library /csv.html?highlight=csv#csv.reader
因此,一个
StringIO.StringIO()
,str.splitlines()
甚至发电机都很好。https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader
Thus, a
StringIO.StringIO()
,str.splitlines()
or even a generator are all good.使用它可以将 csv 加载到列表中
Use this to have a csv loaded into a list
这是一个替代解决方案:
这是文档
Here's an alternative solution:
Here's the documentation
对于仍在寻找将标准 CSV
str
转换为list[str]
以及反向转换的可靠方法的人,这里有两个函数,我从一些此线程和其他线程中的答案:For anyone still looking for a reliable way of converting a standard CSV
str
to alist[str]
as well as in reverse, here are two functions I put together from some of the answers in this and other SO threads:对于 csv 文件:
data = blob.download_as_text()
pd.DataFrame(i.split(",") for i in data.split("\n"))
For csv files:
data = blob.download_as_text()
pd.DataFrame(i.split(",") for i in data.split("\n"))