如何在Python中将JSON转换为CSV |
您所在的位置:网站首页 › json字段数据导入 › 如何在Python中将JSON转换为CSV |
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 |