Reputation: 401
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.
Upvotes: 20
Views: 52462
Reputation: 4473
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()
Upvotes: 34