我是Python的新手,我想把csv文件中的特定列插入到mongodb的集合中,我知道如何用shell做,但我想用python做,因为我正在学习Python。
这是我目前所掌握的情况。
import csv
import json
import pandas as pd
import sys, getopt, pprint
from pymongo import MongoClient
#CSV to JSON Conversion
with open('netflix_titles.csv','rt', encoding="utf8") as file:
data = file.read()
mongo_client=MongoClient()
db=mongo_client.Netflix
db.segment.drop()
header= [ "show_id", "director"]
for each in data:
row={}
for field in header:
row[field]=each[field]
db.segment.insert(row)
在这一行中,我只看到一个缩进的错误。
data = file.read()
如果你要使用 csv
模块,那么一定要使用该模块的阅读器功能。 它会处理引号、空格等等等等。 另外,不知道你的
for each in data:
实际上是在做你认为的CSV分解。 这样更整洁(假设你想从一个静态的头名数组中驱动动作)。
with open('data.csv', 'r') as csvfile:
header = [ "show_id", "director"]
reader = csv.reader(csvfile)
for row in reader:
doc={}
for n in range(0,len(header)):
doc[header[n]] = row[n]
db.foo.insert(doc)
你必须把tab放在 date = file.read()
因为 with
增加压痕程度。