insert()得到了一个意外的关键字参数' data'

时间:2017-09-11 14:43:58

标签: python mongodb

我正在学习monogoDB,我是初学者,但我遇到了一些错误。我的编码错误是什么,并告诉我解决方案?

这是post.py文件

import uuid
from database import Database
import datetime
class Post (object):

def __init__(self,blog_id,title,content,author,date=datetime.datetime.utcnow(),id=None):
    self.blog_id=blog_id
    self.title=title
    self.content=content
    self.author=author
    self.created_date=date
    self.id=uuid.uuid4().hex if id is None else id

def save_to_mongo(self):
    Database.insert(collection='students',data=self.json())

def json(self):
    return {
        'id':self.id,
        'blog_id':self.blog_id,
        'author':self.author,
        'content':self.content,
        'title':self.title,
        'created_date':self.created_date
        }

@staticmethod
def from_mongo(id):
    return Database.find_one(collection='students',query={'id':id})

@staticmethod
def from_blog(id):
    return [post for post in Database.find(collection='students',query={'blog_id':id})]

database.py文件

import pymongo
class Database(object):
URI="mongodb//127.0.0.1:27017"
DATABASE=None

@staticmethod
def initialize():
    client=pymongo.MongoClient(Database.URI)
    Database.DATABASE=client['local']

@staticmethod
def insert(collection,data):
    Database.DATABASE[collection].insert(data)


@staticmethod
def insert(collection,query):
    return Database.DATABASE[collection].find(data)

@staticmethod
def insert(collection,query):
    return Database.DATABASE[collection].find_one(data)

这是test.py文件

from database import Database
from post import Post

Database.initialize()

post=Post(blog_id="123",title="Anoother great post",content="This is some 
sample content",author="rahul")


post.save_to_mongo()

我在运行test.py

时遇到以下错误
[Running] python "d:\myprograms\python\test.py"
Traceback (most recent call last):
File "d:\myprograms\python\test.py", line 9, in <module>
post.save_to_mongo()
File "d:\myprograms\python\post.py", line 15, in save_to_mongo
Database.insert(collection='students',data=self.json())
TypeError: insert() got an unexpected keyword argument 'data'

0 个答案:

没有答案