0

I want to import a directory with multiple sub directories and a lot of JSON-files into a MongoDB via a python script. However I can only import multiple JSON via GUI in Compass or one file at a time using a script using the following code I gathered from another question at stackoverflow(How to import JSON file to MongoDB using Python):

import json 
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db=client['acme']
collection_posts = db ['posts']
with open('9995-f0763044.json') as f:
    file_data = json.load(f)
collection_posts.insert_one(file_data)
client.close()

How can I change this so I can loop through an entire directory and import all of the JSON files? I have seen the insert_many() method but as far I understood it the specific filenames still have to be written into the code. In my perfect scenario I would just enter a directory in the script and it will scan and upload all the JSON-files in that directory. Is this even possible? Thanks for your help

Oszilat68
  • 3
  • 1

1 Answers1

1

something like this?

import glob
filelist = glob.glob('your/path/*.json')
for filename in filelist:
    with open(filename) as f:
        file_data = json.load(f)
    collection_posts.insert_one(file_data)
client.close()
Jonathan Leon
  • 5,440
  • 2
  • 6
  • 14