如何在Python中轻松使用CVS,JSON,XML
【导语】由于 Python 出色的灵活性和易用性,已经成为最受欢迎的编程语言之一。更受数据科学家青睐的是,用 Python 可以简单方便的处理大型数据集。今天的文章,我们就为大家介绍一下,如何用 Python 简单处理 CSV、JSON 和 XML 三种主要的数据格式文件。
如今,每家技术公司都在制定数据战略。 他们都意识到无论是深入的洞察力还是干净的数据,都能给公司带来竞争的关键优势。 如果能更有效的使用数据,就可以提供更深层次、不易发现的洞察力。
经过多年发展,存储数据的格式有很多,然而,在日常使用中大家最常用的三种格式依然是:CSV,JSON 和 XML。因此,这篇文章就分享给大家用 Python 处理这三种流行数据格式最简单的方法!
CSV数据格式
CSV 文件是最常用的数据存储方法。大部分 Kaggle 比赛中的数据都存储在 CSV 文件中。Python 中有内置的 CSV 库来支持读写操作,通常情况下,我们会先将数据读入表中。
在下面的代码中,当调用 csv.reader()函数时,可以访问所有的 CSV 数据。而 csvreader.next()函数的功能是从 CSV 中读取一行,当多次连续调用时,会自动读取下一行。也可以使用 for 循环遍历 csv 的每一行,同样用 csv.reader()函数读取每一行。这里需要注意,要确保每行中的列数相同,否则,在处理时,可能会遇到错误。
![](https://img.haomeiwen.com/i13717038/74d75af4e51c21a5.png)
同样,用 Python 写入 CSV 文件也很容易。先在单个列表中设置字段名称,并在列表中写入数据。这次创建一个 writer()对象,使用这个方法将数据写入文件,与读取 CSV 数据的方式非常相似。
![](https://img.haomeiwen.com/i13717038/b651f948d68ebdb8.png)
当然,如果安装了 Pandas 库,一旦将数据读入了变量中,就可以更轻松地处理数据。从 CSV 读取数据和将其写回文件中仅需要一行代码!
![](https://img.haomeiwen.com/i13717038/08705e607adcc0eb.png)
还可以使用 Pandas 库将 CSV 文件转换为快速的字典列表。一旦将数据格式化为字典列表后,就可以使用 dicttoxml 库将其转换为 XML 格式,或者保存为 JSON 文件格式!
![](https://img.haomeiwen.com/i13717038/d157a914680c042c.png)
JSON数据格式
JSON 提供一种干净且易阅读的格式,采用字典结构。与 CSV 类似,同样有一个内置的 JSON 模块,使读写 JSON 文件变得非常简单! 当读取 JSON 文件时,将以字典的格式存储,然后可以将该字典写入文件。
![](https://img.haomeiwen.com/i13717038/8e9ffcab8703320b.png)
一旦获取了数据,就可以通过 Pandas 库或者 Python 内置的 CSV 模块轻松的将其转换为 CSV 格式。如果需要转换成 XML 格式,可以使用 dicttoxml 库。
![](https://img.haomeiwen.com/i13717038/7cf68bac48409d7a.png)
XML数据格式
XML 格式与 CSV 和 JSON 有点不同。通常,因为 CSV 和 JSON 本身简单,它们能既简单又快速的读写,有很好的解释性,被广泛使用。解析 JSON 或 CSV 格式非常的轻量级,不需要额外的工作。
相反,XML 的操作则有些繁琐。如果你是发送这种格式的数据,需要更多的带宽、存储空间和运行时间。但是 XML 确实有一些 JSON 和 CSV 不具备的功能,例如,你可以使用命名空间构建和共享标准结构,更好地表示继承,以及使用 XML 模式,DTD 等表示数据的行业标准化方法。
为了读入 XML 格式的数据,可以使用 Python 内置的 XML 模块和子模块 ElementTree。因此,在下面的示例中使用 xmltodict 库将 ElementTree 对象转换为字典。 一旦有了字典,就可以像之前那样将其转换为 CSV,JSON 或 Pandas Dataframe 等格式!
![](https://img.haomeiwen.com/i13717038/a81877d6022d660a.png)
原文链接:
https://towardsdatascience.com/the-easy-way-to-work-with-csv-json-and-xml-in-python-5056f9325ca9