Hướng dẫn how to import excel file in mongodb using python - cách nhập tệp excel trong mongodb bằng python

Tôi cần chuyển dữ liệu từ tệp Excel sang bảng MongoDB thông qua mã Python. Tệp Excel của tôi trông như thế:

TênTuổi tácĐối tượng
Alex12 môn ToánVật lýSinh học
MAG67 Hoá học Lịch sử

Đầu ra MongoDB sẽ trông như thế:

--1 Đối tượng--: Tên: Alex Age: 12 môn học: Toán, Vật lý, Sinh học
Name: Alex
Age: 12
Subjects: Math, Physics, Biology

--2 Đối tượng--: Tên: Mag Age: 67 Chủ đề: Hóa học, Lịch sử
Name: Mag
Age: 67
Subjects: Chemistry, History

Tôi đã viết mã như thế này:

import csv import pymongo import pandas as pd read_file = pd.read_excel("T1.xls") read_file.to_csv("Test.csv", index=None, header=True) df = pd.DataFrame(pd.read_csv("Test.csv")) connection = pymongo.MongoClient('127.0.0.1:27017') db = connection.test collection = db.table1 table = open('Test.csv', 'r') reader = csv.DictReader(table) collection.drop() header = df.head() for each in reader: row = {} for field in header: row[field] = each[field] collection.insert_one(row)

Tuy nhiên, tôi có 2 vấn đề với nó:

  1. Bước với tệp .xslx chuyển đổi thành .csv là không cần thiết
  2. Kết quả là, tôi có thêm 2 cột không mong muốn như không tên: 3, không tên: 4 với tên của các đối tượng khác, nói cách khác, mã này phân tách các đối tượng trong một cột, vì trong tệp excel của tôi, tôi có 'chủ đề' như các tế bào thống nhất

Có ai có thể giúp tôi với những điểm này?

Nhập tệp Excel vào MongoDB

MongoDB không hỗ trợ nhập trực tiếp các tệp Excel, vì vậy để làm điều đó, chúng tôi sẽ sử dụng một chức năng tích hợp vào Excel.

Sẵn sàng

Tiện ích mongoimport chỉ hỗ trợ các tệp JSON, CSV và TSV. Do đó, để lấy dữ liệu của bạn từ Excel vào MongoDB, tùy chọn tốt nhất là lưu nó dưới dạng tệp CSV và sau đó sử dụng mongoimport để nhập nó.

Làm thế nào để làm nó…

Trong Excel:

  1. Chuyển đến menu tệp.File menu.
  2. Chọn Lưu dưới dạng.Save As.
  3. Lưu tệp ở định dạng giá trị phân tách dấu phẩy (CSV).Comma Separated Values (CSV) format.

Sau khi bạn thực hiện các bước trước, bạn có thể sử dụng công thức trước đó để nhập tệp.

Nếu bạn nghĩ rằng điều đó quá dễ dàng, bạn có thể nhập tệp excel vào khung dữ liệu gấu trúc bằng cách sử dụng read_excel, hãy viết toàn bộ DataFrame vào tệp CSV bằng cách sử dụng to_csv, sau đó nhập nó bằng cách sử dụng ...

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

#!/usr/bin/env Python
Nhập khẩu sys
ImpridPandasaspd pandas as pd
Impilpymongo pymongo
Nhập khẩu json
demimport_content (filepath): import_content(filepath):
mng_client = pymongo.mongoclient ('localhost', 27017) = pymongo.MongoClient('localhost', 27017)
mng_db = mng_client ['MongoDB_name'] // RepracemongOdbName = mng_client['mongodb_name'] // Replace mongo db name
collection_name='collection_name'//Replacemongodbcollectionname = 'collection_name' // Replace mongo db collection name
DB_CM = MNG_DB [Collection_Name] = mng_db[collection_name]
CDIR = OS.Path.Dirname (__ File__) = os.path.dirname(__file__)
file_res = os.path.join (CDIR, FilePath) = os.path.join(cdir, filepath)
data = pd.read_csv (file_res) = pd.read_csv(file_res)
data_json = json.loads (data.to_json (Orient = 'Records'))) = json.loads(data.to_json(orient='records'))
db_cm.remove ().remove()
db_cm.insert (data_json).insert(data_json)
if__name __ == "__ main__": __name__ == "__main__":
filepath='/path/to/csv/path'//passcsvfilepath = '/path/to/csv/path' // pass csv file path
Nhập khẩu_content (FilePath)(filepath)

Làm cách nào để nhập dữ liệu Excel vào MongoDB?

Kết nối Excel với MongoDB với Get & Transform (Truy vấn sức mạnh)..
Nhấp vào dữ liệu trong Excel, sau đó mở rộng danh sách thả xuống Get Data. ....
Trong hộp thoại từ ODBC, chọn Tên nguồn dữ liệu (DSN) của bạn. ....
Nếu bạn đang sử dụng tên người dùng hoặc mật khẩu cơ sở dữ liệu, hãy chọn cơ sở dữ liệu và nhập thông tin đăng nhập của bạn vào Dialox Bog, sau đó bấm Kết nối ..

Làm cách nào để nhập tệp CSV vào MongoDB bằng Python?

Chúng tôi sẽ sử dụng tên tệp CSV bằng phương thức DicTreader ().Hàm dictreader () trả về một đối tượng đầu đọc CSV.Chúng tôi sẽ lặp (vòng lặp) trên đối tượng đầu đọc CSV và tạo dữ liệu JSON để chèn nhiều bản ghi vào cơ sở dữ liệu MongoDB.Cuối cùng, chúng tôi sẽ chèn dữ liệu hàng JSON vào MongoDB bằng phương thức chèn_many ().

Làm cách nào để nhập tệp vào MongoDB?

Cách đơn giản nhất để nhập một tệp duy nhất vào MongoDB là sử dụng tùy chọn tệp -để chỉ định một tệp.Theo tôi, tình huống tốt nhất là bạn có một thư mục đầy đủ các tệp JSON cần được nhập.use the --file option to specify a file. In my opinion, the very best situation is that you have a directory full of JSON files which need to be imported.

Làm cách nào để nhập tệp CSV vào MongoDB?

Nhập tệp CSV trong MongoDB - Các bước và lệnh..
Đi đến thư mục nơi lưu giữ mongoDB ..
Chuyển đến thư mục bin của nó ..
Lưu hoặc giữ tệp CSV hoặc TXT của bạn ở đây mà bạn muốn nhập.....
Bây giờ vào cùng một thư mục mở CMD bằng cách nhấn Ctrl+L và gõ CMD ở đó.....
Nhập lệnh bị thiếu:.

Chủ đề