Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to import JSON file to MongoDB using Python

I have this JSON file, currencies.json:

{
    "AUD": 1.5978,
    "BGN": 1.9558,
    "BRL": 4.0726,
    "CAD": 1.5868,
    "CHF": 1.1703,
    "CNY": 7.7975,
    "CZK": 25.405,
    "DKK": 7.4478,
    "GBP": 0.87285,
    "HKD": 9.6889,
    "HRK": 7.4398,
    "HUF": 312.9,
    "IDR": 16993.0,
    "ILS": 4.2984,
    "INR": 80.255,
    "ISK": 122.1,
    "JPY": 129.74,
    "KRW": 1330.3,
    "MXN": 22.88,
    "MYR": 4.8365,
    "NOK": 9.5715,
    "NZD": 1.7024,
    "PHP": 64.64,
    "PLN": 4.2262,
    "RON": 4.663,
    "RUB": 70.539,
    "SEK": 10.194,
    "SGD": 1.6216,
    "THB": 38.495,
    "TRY": 4.888,
    "USD": 1.2346,
    "ZAR": 14.52
}

And this connection in Python:

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['countries_db']
collection_currency = db['currency']

My db name is countries_db with the currency collection. Is there a way to import the file to the db using python?
Thanks for your help.

like image 799
Filipe Santos Avatar asked Mar 27 '18 10:03

Filipe Santos


People also ask

How do I import a JSON file into MongoDB?

Open the Import Wizard. Then, choose JSON as the import format and click OK. Click on + to add JSON source documents, – to remove them, or the clipboard icon to paste JSON data from the clipboard. Here we will add the JSON source document, Rainfall-Data.

Can we import JSON in MongoDB?

The process to import JSON into MongoDB depends on the operating system and the programming language you are using. However, the key to importing is to access the MongoDB database and parsing the file that you want to import. You can then go through each document sequentially and insert into MongoDB.


1 Answers

You can read data from file and insert it into collection using insert_one method:

import json
from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client['countries_db']
collection_currency = db['currency']

with open('currencies.json') as f:
    file_data = json.load(f)

# if pymongo < 3.0, use insert()
collection_currency.insert(file_data)
# if pymongo >= 3.0 use insert_one() for inserting one document
collection_currency.insert_one(file_data)
# if pymongo >= 3.0 use insert_many() for inserting many documents
collection_currency.insert_many(file_data)

client.close()
like image 182
Ivan Vinogradov Avatar answered Sep 18 '22 06:09

Ivan Vinogradov