使用Python将CSV文件导入MongoDB的方法

905 阅读2分钟

在本教程中,你将学习如何使用Python将CSV文件导入MongoDB。

在使用Python开发应用程序时,有时我们需要将CSV数据插入MongoDB数据库中。在Python中插入CSV数据到MongoDB是非常容易的。我们只需要读取CSV文件,然后连接到MongoDB来插入数据。

所以在本教程中,我们将使用CSV 内置模块来读取 CSV 文件。我们将使用模块pymongo ,与MongoDB客户端连接并插入数据。

因此,让我们开始编写代码吧。

安装PyMongo模块

由于我们需要与MongoDB客户端连接,所以我们需要使用以下命令安装pymongo 模块。

pip install pymongo

连接到MongoDB

我们将导入模块pymongo ,与MongoDB连接以插入记录。

from pymongo import MongoClient

然后我们将传递MongoDB的连接细节和连接到数据库,并选择插入记录。

mongoClient = MongoClient() 
db = mongoClient.october_mug_talk
db.segment.drop()

读取CSV文件

由于我们要向MongoDB插入CSV文件数据,所以首先我们要读取CSV文件并将数据转换成JSON格式。所以我们将在文件的顶部导入csv 模块来读取CSV文件。

import csv

然后我们将使用DictReader() 方法将CSV文件employeeDictReader() 函数返回一个csv阅读器对象。

csvfile = open('employee.csv', 'r')
reader = csv.DictReader( csvfile )

我们将遍历csv阅读器对象并创建json数据,以便将多条记录插入MongoDB。

for each in reader:
    row={}
    for field in header:
        row[field]=each[field]

将数据插入MongoDB

最后,我们将使用insert_many() 方法向MongoDB插入json行数据。

db.segment.insert(row)

将CSV数据插入到MongoDB的完整代码

以下是将CSV数据导入MongoDB的完整代码。

import csv
from pymongo import MongoClient

mongoClient = MongoClient() 
db = mongoClient.october_mug_talk
db.segment.drop()

header = [ "name", "age", "country"]
csvfile = open('employee.csv', 'r')
reader = csv.DictReader( csvfile )

for each in reader:
    row={}
    for field in header:
        row[field]=each[field]
        
    print (row)
    db.segment.insert(row)