将CSV文件转换为JSON文件的Python教程
在本教程中,我们将了解如何使用Python编程语言将CSV格式文件转换为JSON格式文件。
在开始之前,让我们了解一下CSV和JSON文件的含义。
什么是CSV文件
CSV文件,缩写为逗号分隔值文件,是一种存储数据列表的纯文本文件。CSV文件通常用于不同应用程序之间的数据交换。例如,联系人管理器和数据库通常提供CSV文件支持。
这些CSV文件也被称为逗号分隔文件或字符分隔值文件。这些文件通常使用逗号字符来分隔数据,但有时也使用其他字符,例如分号。预期的目的是将复杂数据从一个程序导出到CSV格式文件,然后从CSV文件导入数据到另一个程序。
逗号分隔值(CSV)文件具有相当基本的结构,其中包含一些以逗号分隔的数据列表。CSV文件的设计方式可以轻松地导入和导出其他应用程序的数据。生成的数据容易被人类阅读,并且可以使用文本编辑器(如记事本)或电子表格应用程序(如Microsoft Excel或Google Sheets)查看。
什么是JSON文件
JSON文件,也缩写为JavaScript对象表示法文件,是一种允许用户以标准数据交换格式(称为JSON格式)存储基本对象和数据结构的文件。JSON文件通常用于在基于Web的应用程序和服务器之间传输数据。JSON文件是轻量级的基于文本的文件,人们可以轻松阅读,我们可以在文本编辑器(如记事本)的帮助下编辑这些文件。
JSON格式实质上是基于JavaScript子集的。然而,它被认为是一种与语言无关的格式,并受到多种编程API的支持。JSON通常在Ajax Web应用程序编程中使用。在过去几年中,与XML相比,JSON作为替代品逐渐增长了其流行度。
虽然有各种程序使用JSON进行数据交换,但它们可能不会将JSON格式文件保存在硬盘上。数据交换是在通过互联网连接的计算机之间进行的。然而,少数程序允许我们保存JSON格式文件。例如,Google+使用JSON文件保存配置文件数据。一旦我们登录,我们可以选择“数据解放”页面并选择“下载个人资料数据”选项。
由于JSON文件是纯文本文件,我们可以使用任何文本编辑器打开它们,例如Windows的Microsoft记事本,Mac的Apple文本编辑器,Linux的Vim以及GitHub Atom。我们还可以使用Web浏览器,如Google 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文件。