title: Error while inserting data in mongodb with pymongo
body: <p>I am new to pymongo and mongodb. I am trying to insert documents interactively with pymongo. When I am trying the document via a python script, it's failing.</p>
  
  <p>Enter the name:
  test3</p>
  
  <p>Enter the address: Someaddress</p>
  
  <p>Enter the phone number: 9876543</p>
  
  <pre><code>{"Name": "test3", "Phone": 9876543, "Address": "Someaddress"} # Here I am printing the document to be inserted
  
  Traceback (most recent call last):
  File "./sample.py", line 54, in &lt;module&gt;
  insertDocument()
  
   File "./sample.py", line 27, in insertDocument
  
   insert_id=db.collection.insert_one(obj)
  
   File "/appl/swinstall/mongo-python-driver-master/pymongo/collection.py", line 676, in insert_one
  
  common.validate_is_document_type("document", document)
  
   File "/appl/swinstall/mongo-python-driver-master/pymongo/common.py", line 434, in validate_is_document_type
  
  "collections.MutableMapping" % (option,))
  
  TypeError: document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMapping
  </code></pre>
  
  <p>Below is my code: </p>
  
  <pre><code>#!/usr/bin/python
  
  import sys
  import os
  from pymongo import MongoClient
  ch=MongoClient()
  db=ch.local
  
  def insertDocument():
  print "insertDocument"
  print "Enter the name:"
  name=raw_input("&gt;&gt; ")
  print "Enter the address"
  address=raw_input("&gt;&gt; ")
  print "Enter the phone number"
  phone=raw_input("&gt;&gt; ")
  obj='{"Name": "'+ str(name) +'", "Phone": '+ str(phone) +', "Address": "'+ str(address) +'"}'
  print obj
  insert_id=db.collection.insert_one(obj)
  
  insertDocument()
  </code></pre>
  
  <p>But when I am trying the same in python terminal, it's getting inserted.</p>
  
  <pre><code>test={"Name":"Test3", "Phone":98765653, "Address":"SomeAddress"}
  
  insert_id=db.collection.insert_one(test)
  
  x=db.collection.find()
  
  x.count()
  
  5
  
  for y in x:
  
  ... print y
  
  ...
  
  {u'Phone': 123456, u'_id': ObjectId('5ac59b23788b851887bb4a77'), u'Name': u'test', u'Address': u'DHL'}
  {u'Phone': 5678990, u'_id': ObjectId('5ac5be03788b851c9f7da382'), u'Name': u'test2', u'Address': u'Cyberjaya'}
  {u'Phone': 7872476, u'_id': ObjectId('5ac5be3b788b851c9f7da383'), u'Name': u'test3', u'Address': u'Kuala Lumpur'}
  {u'Phone': 8977101750L, u'_id': ObjectId('5ac5dc59788b8523141b43eb'), u'Name': u'Soumya', u'Address': u'Cybersquare'}
  {u'Phone': 98765653, u'_id': ObjectId('5acace4a788b855f05c7ea0d'), u'Name': u'Test3', u'Address': u'SomeAddress'} &lt;== This got inserted
  </code></pre>
  
  <p>Can someone help?</p>