【发布时间】:2021-03-14 21:23:26
【问题描述】:
我需要通过 Python 代码将数据从 Excel 文件传递到 MongoDB 表。 我的 Excel 文件如下所示:
| Name | Age | Subjects | ||
|---|---|---|---|---|
| Alex | 12 | Math | Physics | Biology |
| Mag | 67 | Chemistry | History |
MongoDB 输出应如下所示:
--1 对象--:
姓名:亚历克斯
年龄:12
科目:数学、物理、生物
--2 对象--:
姓名:麦格
年龄:67
科目:化学、历史
我写了这样的代码:
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)
但是,我有两个问题:
- 无需将 .xslx 文件转换为 .csv 的步骤
- 因此,我还有 2 个不需要的列,如未命名:3,未命名:4 以及其他主题的名称,换句话说,此代码将主题分隔为单列,因为在我的 Excel 文件中我有“主题”作为联合细胞
有人可以帮我解决这些问题吗?
【问题讨论】:
标签: python excel pandas mongodb parsing