如何在Python中将JSON转换为CSV

您所在的位置:网站首页 json字段数据导入 如何在Python中将JSON转换为CSV

如何在Python中将JSON转换为CSV

2023-11-23 12:58| 来源: 网络整理| 查看: 265

JSON的全称是JavaScript Object Notation。JSON是由编程语言中的文本组成的脚本文件,用于存储和传输数据。当你与服务器一起工作时,那么JSON数据是有益的。Python通过一个叫做json的内置包支持JSON。

CSV (Comma Separated Values)是用于存储表格数据的简单文件格式,如数据库或电子表格。

Python JSON到CSV

要在Python中把JSON转换为CSV,可以使用pandas to_csv()函数。 to_csv()是一个Pandas库函数,可以将对象写入逗号分隔的值(csv)文件。将json转换为csv的第一步是使用Pandas read_json()函数读取json数据,然后使用 to_csv()函数将其转换为csv。

要在Python中使用json,我们必须在Python脚本中导入json包。JSON文本是通过引号字符串完成的,它包含了{ }内的键值映射的值。它类似于Python中的字典。

CSV文件以纯文本形式存储表格数据(数字和文本)。文件的每一行都是数据记录。每条记录由一个或多个字段组成,用逗号分隔。作为字段分隔符的逗号是这种文件格式名称的来源。

现在,我们需要将Python JSON字符串转换成CSV格式。所以,我们需要处理外部的json文件。这种情况经常用在网络开发中,来自服务器的数据总是以JSON格式发送,然后我们需要将这些数据转换为CSV格式,以便用户能够快速分析数据。

在我们的案例中,没有服务器。所以我们必须创建一个带有一些数据的静态json文件。然后我们读取该文件获得数据,并通过以下步骤将其转换成CSV格式。

将Python JSON转换为CSV的步骤 收集JSON数据 使用read_json()函数读取数据,并将其转换成Pandas对象 使用to_csv()函数将Pandas对象转换为CSV 第一步:获取JSON数据

假设我们有一个名为export.json的文件。

该文件的内容如下,你可以复制以下内容并创建你的json文件。让我们把它命名为export.json 文件:

{ "0": { "Netflix": "Stranger Things", "Quibi": "Most Dangerous Game" }, "1": { "Netflix": "Money Heist", "Quibi": "The Stranger" }, "2": { "Netflix": "House of Cards", "Quibi": "50 States of Fright" }, "3": { "Netflix": "Rick and Morty", "Quibi": "Flipped" }, "4": { "Netflix": "Better Call Saul", "Quibi": "Survival" } }

现在,这就是文件的内容,我们将把它转换成CSV。

在上面的文件中,你可以看到,键是有索引的。这意味着,当我们把它转换成pandas对象时,索引将是0、1、2、3、4,而头列将是Netflix和Quibi。

第二步:读取json并将其转化为Pandas对象

Pandas read_json()是一个内置的函数,可以将JSON字符串转换为pandas对象。使用pandas解析JSON数据集要方便得多。Pandas允许你将列表转换为DataFrame,并单独指定列名。

一个JSON解析器将JSON文本转换为另一种表示方法,必须接受所有符合JSON语法的文本。

我假设export.json 文件与你的编码文件在同一目录下。所以你的路径只是一个文件名。现在,让我们用下面的代码将JSON字符串转换为Pandas对象:

# app.py import pandas as pd pdObj = pd.read_json('export.json', orient='index') print(pdObj) 输出 python3 app.py Netflix Quibi 0 Stranger Things Most Dangerous Game 1 Money Heist The Stranger 2 House of Cards 50 States of Fright 3 Rick and Morty Flipped 4 Better Call Saul Survival

在上面的代码中,我们已经传递了orient='index'。

Orient是预期的JSON字符串格式的一个指示。兼容的JSON字符串可以由to_json()产生,并有相应的orient值。可能的orient的集合是。

'split': dict like {index -> [index], columns ->

, data -> [values]}

'records': list like [{column -> value}, ..., {column -> value}].

'索引': dict like {index -> {column -> value}}

'columns': dict like {column -> {index -> value}}.

'值':只是值数组

从输出结果来看,我们可以说,我们已经将json字符串转化为Pandas对象。

第三步:将Pandas对象转换为CSV

让我们把Pandas对象转换为CSV数据并在控制台中打印出来:

# app.py import pandas as pd pdObj = pd.read_json('export.json', orient='index') csvData = pdObj.to_csv(index=False) print(csvData) 输出 python3 app.py Netflix,Quibi Stranger Things,Most Dangerous Game Money Heist,The Stranger House of Cards,50 States of Fright Rick and Morty,Flipped Better Call Saul,Survival

我们已经禁用了索引,因为我们不需要CSV数据的索引。

在这里,我们已经打印了CSV数据。我们也可以在这里导出CSV数据。 我们需要提供创建CSV文件的导出路径来做到这一点。我们是在与export.json文件相同的目录下进行导出的:

# app.py import pandas as pd pdObj = pd.read_json('export.json', orient='index') pdObj.to_csv('streaming.csv', index=False)

在这种情况下,我们不需要返回任何数据,因为我们正在导出文件。所以这就是为什么这里的返回值是无。

导出的文件名称是streaming.csv文件,与export.json文件在同一目录下。该文件的内容如下:

# streaming.csv Netflix,Quibi Stranger Things,Most Dangerous Game Money Heist,The Stranger House of Cards,50 States of Fright Rick and Morty,Flipped Better Call Saul,Survival

让我们回顾一下这里的一切。

在第一步,我们已经准备好了JSON文件。

在第二步,我们使用read_json()函数将其转换为Pandas对象。

在最后一步,我们需要使用Pandas to_csv()函数将Pandas对象转换为CSV数据或将其导出到一个文件。

总结

处理大型JSON数据集的工作可能会恶化,主要是当它们太大,无法装入内存时。 在这样的情况下,Pandas库可以成为探索和分析数据的有效途径。此外,我们可以使用Pandas库将几乎所有的标准数据类型转换为任何其他数据类型。

本教程到此结束。

另见

Pandas数据框架到列表

Pandas to_json()

Pandas filter()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3