Skip to content

Instantly share code, notes, and snippets.

@mprajwala
Last active July 23, 2023 20:07
Show Gist options
  • Save mprajwala/849b5909f5b881c8ce6a to your computer and use it in GitHub Desktop.
Save mprajwala/849b5909f5b881c8ce6a to your computer and use it in GitHub Desktop.
Store CSV data into mongodb using python pandas
#!/usr/bin/env python
import sys
import pandas as pd
import pymongo
import json
def import_content(filepath):
mng_client = pymongo.MongoClient('localhost', 27017)
mng_db = mng_client['mongodb_name'] // Replace mongo db name
collection_name = 'collection_name' // Replace mongo db collection name
db_cm = mng_db[collection_name]
cdir = os.path.dirname(__file__)
file_res = os.path.join(cdir, filepath)
data = pd.read_csv(file_res)
data_json = json.loads(data.to_json(orient='records'))
db_cm.remove()
db_cm.insert(data_json)
if __name__ == "__main__":
filepath = '/path/to/csv/path' // pass csv file path
import_content(filepath)
@seven-media-group
Copy link

Capture

why is this happening Undefined variable 'os' ?

@ItsCosmas
Copy link

Capture

why is this happening Undefined variable 'os' ?

Don't forget to import the os module at the top of your script:
import os

@seven-media-group
Copy link

Capture
why is this happening Undefined variable 'os' ?

Don't forget to import the os module at the top of your script:
import os

yes, got it
Thank You so much

@Ayushi1504
Copy link

Ayushi1504 commented Feb 20, 2020

i need to map a csv which has an id field already to be imported to mongo with the _id as this id field.How to do that?
(rhis csv file has an id field)
try:
client = MongoClient(mongouri)
database = client['automation']
database.create_collection('testTableMongo'+str(suffix))
coll = database['testTableMongo'+str(suffix)]
data = pd.read_csv(os.path.abspath('../data/' + file))
payload = json.loads(data.to_json(orient='records'))
coll.remove()
coll.insert(payload)
except OperationFailure as msg:
print("Command skipped: %s", msg)

@Roalpifi
Copy link

Roalpifi commented Jun 9, 2020

I'm with the error "name 'file' is not defined"

@ItsCosmas
Copy link

I'm with the error "name 'file' is not defined"

Hey, kindly post a snippet of your code for easier help

@nathaliadv
Copy link

image

@0xdeepmehta
Copy link

image

when you use file in python interactive mode, this error occur.
So you should write this line os.path.dirname(__file__) in file.py.

for more reference consider this : https://stackoverflow.com/questions/16771894/python-nameerror-global-name-file-is-not-defined

@dasroja
Copy link

dasroja commented Mar 15, 2021

I need help to load data into mongo database with collection creation from worksheet which contain multiple excel sheets

@hakymulla
Copy link

I need help to load data into mongo database with collection creation from worksheet which contain multiple excel sheets

you can read a sheet with pandas with the sheet_name att.
df = pd.read_excel('my_excel.xlsx', sheet_name='Sheet 1')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment