Batch upload or bulk upload is not supported with Cosmo DB python library. Hence, requires iteration over items to be stored in database.
Sample code (Run time - Python 3.6)
import json
import random
import azure.cosmos.cosmos_client as cosmos_client
import azure.cosmos.documents as doc
from faker import Faker
from pprint import pprint
from easydict import EasyDict as edict
config = {
'ENDPOINT': 'https://localhost:8081',
'PRIMARYKEY': 'CREATEME',
'DATABASE': 'funcTest',
'CONTAINER': 'funcTest'
}
# Initialize the Cosmos client
connection_policy = doc.ConnectionPolicy()
# Disable in production
connection_policy.DisableSSLVerification = "true"
client = cosmos_client.CosmosClient(url_connection=config['ENDPOINT'], auth={
'masterKey': config['PRIMARYKEY']},
connection_policy=connection_policy)
# Create a database
db = client.CreateDatabase({'id': config['DATABASE']})
# Create container options
options = {
'offerThroughput': 400
}
container_definition = {
'id': config['CONTAINER']
}
# Create a container
container = client.CreateContainer(db['_self'], container_definition, options)
fake = Faker()
# Iterating over fake person data and storing in DB
for i in range(50):
json_data = edict({'first_name': fake.first_name(),
'last_name': fake.last_name(),
'age': random.randint(30, 50),
'address': {'city': fake.city(),
'state': fake.state()}})
client.CreateItem(container['_self'], json_data)