在本教程中,我们将了解如何借助 Python 编程语言将 CSV 格式的文件转换为 JSON 格式的文件。
但是我们开始,让我们理解 CSV 和 JSON 文件的含义。
什么是 CSV 文件?
一个 CSV 文件,简称逗号分隔值文件,是一个存储数据列表的纯文本文件。CSV 文件通常用于在各种应用之间交换数据。例如,联系人管理器和数据库通常提供 CSV 文件支持。
这些 CSV 文件也称为逗号分隔文件或字符分隔值。这些文件主要利用逗号字符来分隔数据。但是,有时会使用分号等其他字符。预期是将复杂的数据从一个程序导出到 CSV 格式的文件,然后将数据从 CSV 文件导入到另一个程序中。
逗号分隔值(CSV)文件有一个非常基本的结构,包含一些用逗号列出和分隔的数据。CSV 文件的设计方式使其可以轻松地从其他应用导入和导出数据。生成的数据很容易被人读取,并且可以用文本编辑器(如记事本)或电子表格应用(如微软 Excel 或谷歌工作表)查看。
什么是 JSON 文件?
一个 JSON 文件,也是 JavaScript 对象符号文件的缩写,是一个允许用户以标准数据交换格式(称为 JSON 格式)存储基本对象和数据结构的文件。JSON 文件通常用于在基于网络的应用和服务器之间传输数据。JSON 文件是轻量级的基于文本的文件,人类可以轻松阅读,我们可以在记事本等文本编辑器的帮助下编辑这些文件。
JSON 格式真正基于 JavaScript 子集。然而,它被称为一种独立于语言的格式,并受到各种编程接口的支持。JSON 通常用于 Ajax 网络应用编程。在过去的几年里,作为 XML 的替代品,JSON 的受欢迎程度逐渐提高。
虽然有各种程序使用 JSON 进行数据交换,但它们可能不会将 JSON 格式的文件保存在硬盘上。数据交换发生在通过互联网连接的计算机之间。然而,很少有程序允许我们保存 JSON 格式的文件。例如,谷歌+使用一个 JSON 文件来保存配置文件数据。登录后,我们可以选择“数据解放”页面并选择“下载您的个人资料数据”选项。
由于 JSON 文件是纯文本文件,允许我们在任何文本编辑器中打开它们,例如微软的视窗记事本、苹果的苹果文本编辑、Linux 的 Vim 和 GitHub Atom,我们还可以使用谷歌 Chrome 和 Mozilla Firefox 等网络浏览器来打开 JSON 格式的文件。
现在让我们从 CSV 文件到 JSON 文件的转换开始。
CSV 文件到 JSON 文件的转换
我们将在下面编写脚本的简单 Python 程序的帮助下,将 CSV 文件转换为 JSON 文件。
我们将使用以下 CSV 文件。
文件:mydatalist.csv
程序:
# importing the required libraries
import csv
import json
# defining the function to convert CSV file to JSON file
def convjson(csvFilename, jsonFilename):
# creating a dictionary
mydata = {}
# reading the data from CSV file
with open(csvFilename, encoding = 'utf-8') as csvfile:
csvRead = csv.DictReader(csvfile)
# Converting rows into dictionary and adding it to data
for rows in csvRead:
mykey = rows['S. No.']
mydata[mykey] = rows
# dumping the data
with open(jsonFilename, 'w', encoding = 'utf-8') as jsonfile:
jsonfile.write(json.dumps(mydata, indent = 4))
# filenames
csvFilename = r'mydatalist.csv'
jsonFilename = r'mydatalist.json'
# Calling the convjson function
convjson(csvFilename, jsonFilename)
输出:
文件:mydatalist.json
{
"1": {
"S. No.": "1",
"Name": "Dave",
"Age": "17"
},
"2": {
"S. No.": "2",
"Name": "Albus",
"Age": "16"
},
"3": {
"S. No.": "3",
"Name": "John",
"Age": "19"
},
"4": {
"S. No.": "4",
"Name": "Tom",
"Age": "22"
},
"5": {
"S. No.": "5",
"Name": "Harry",
"Age": "19"
},
"6": {
"S. No.": "6",
"Name": "Ron",
"Age": "20"
},
"7": {
"S. No.": "7",
"Name": "William",
"Age": "13"
},
"8": {
"S. No.": "8",
"Name": "George",
"Age": "15"
},
"9": {
"S. No.": "9",
"Name": "Mark",
"Age": "11"
},
"10": {
"S. No.": "10",
"Name": "Max",
"Age": "18"
}
}
说明:
在上例中,我们导入了 csv 和 json 库,并将一个函数定义为 convjson() 。然后,我们创建了一个空字典,并从 CSV 文件中读取数据。我们已经将行从 CSV 转换为字典,并将它们添加到数据中。然后,我们将数据转储到一个 JSON 文件中。最后,我们为文件路径名定义了变量,并调用 convjson() 函数来实现转换。因此,当我们执行该程序时,CSV 文件被成功转换为 JSON 文件。