Как импортировать файл csv в mongoDB, используя python - PullRequest
0 голосов
/ 28 мая 2020

Я новичок в Python. Я хочу вставить определенные c столбцы файла csv в коллекцию в моем mongodb, я знаю, как это сделать с помощью оболочки, но я хочу сделать это с помощью 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)

In только выдает мне ошибку с отступом в этой строке:

data = file.read()

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Если вы собираетесь использовать модуль csv, обязательно используйте функцию чтения этого модуля. Он будет иметь дело с кавычками, пробелами и т. Д. c. et c. Кроме того, не уверен, действительно ли ваш

for each in data:

выполняет разбиение CSV, как вы думаете. Это более аккуратно (при условии, что вы хотите запустить действие из массива имен заголовков stati c):

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)
1 голос
/ 28 мая 2020

Табуляцию нужно ставить перед date = file.read(), потому что with увеличивает уровень отступа.

...