Python教程-在Python中将CSV转换为JSON
在本教程中,我们将了解如何使用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 TextEdit,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"
}
}
Expla
解释:
在上面的示例中,我们导入了csv和json库,并定义了一个名为convjson()的函数。然后,我们创建了一个空字典,并从CSV文件中读取数据。我们将CSV中的行转换为字典并将其添加到数据中。然后,我们将数据转储到JSON文件中。最后,我们定义了文件路径名称的变量,并调用convjson()函数来执行转换。结果,当我们执行程序时,CSV文件成功转换为JSON文件。