Open In App

Convert PyMongo Cursor to JSON

Last Updated : 26 May, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisites: MongoDB Python Basics

This article is about converting the PyMongo Cursor to JSON. Functions like find() and find_one() returns the Cursor instance.

Let’s begin:

  1. Importing Required Modules: Import the required module using the command:
    from pymongo import MongoClient
    from bson.json_util import dumps

    If MongoDB is already not installed on your machine you can refer to the guide: Guide to Install MongoDB with Python

  2. Creating a Connection: Now we had already imported the module, its time to establish a connection to the MongoDB server, presumably which is running on localhost (host name) at port 27017 (port number).
    client = MongoClient(‘localhost’, 27017)
  3. Accessing the Database: Since the connection to the MongoDB server is established. We can now create or use the existing database.
    mydatabase = client.name_of_the_database
  4. Accessing the Collection: We now select the collection from the database using the following syntax:
    collection_name = mydatabase.name_of_collection
  5. Getting the documents: Getting all the documents from the collection using find() method. It returns the instance of the Cursor.
    cursor = collection_name.find()
    
  6. Converting the Cursor to JSON: Converting the Cursor to the JSON.
    First, we will convert the Cursor to the list of dictionary.

    list_cur = list(cursor)

    Now, converting the list_cur to the JSON using the method dumps() from bson.json_util

    json_data = dumps(list_cur)
    

    You can now save it to the file or can use it in the program using loads() function.

Below is the implementation.




# Python Program for
# demonstrating the 
# PyMongo Cursor to JSON
   
  
# Importing required modules
from pymongo import MongoClient
from bson.json_util import dumps, loads
  
  
# Connecting to MongoDB server
# client = MongoClient('host_name',
# 'port_number')
client = MongoClient('localhost', 27017)
  
# Connecting to the database named
# GFG
mydatabase = client.GFG
   
# Accessing the collection named
# gfg_collection
mycollection = mydatabase.College
  
# Now creating a Cursor instance
# using find() function
cursor = mycollection.find()
  
# Converting cursor to the list 
# of dictionaries
list_cur = list(cursor)
  
# Converting to the JSON
json_data = dumps(list_cur, indent = 2
   
# Writing data to file data.json
with open('data.json', 'w') as file:
    file.write(json_data)


Output:


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads