使用 Python 使用嵌套字典填充 MongoDB 数据库

Posted

技术标签:

【中文标题】使用 Python 使用嵌套字典填充 MongoDB 数据库【英文标题】:Populate a MongoDB database with nested dictionaries using Python 【发布时间】:2019-06-06 09:56:15 【问题描述】:

我是 MongoDB 的新手。 我想创建一个具有以下键值结构的数据库,类似于 python 字典或 JSON 文件(或者更好的是,纯 MongoDB 样式,因为它是一个键值数据库):

'doc name 1' : 
                'word number 1' : 'value1',
                'word number 2' : 'value2',     
                'word number 3' : 'value3',
                'word number 4' : 'value4',
                'word number 5' : 'value5'
                ,
'doc name 2' : 
                'word number 1' : 'value1',
                'word number 2' : 'value2',     
                'word number 3' : 'value3',
                'word number 4' : 'value4',
                'word number 5' : 'value5'
                ,
'doc name 3' : 
                'word number 1' : 'value1',
                'word number 2' : 'value2',     
                'word number 3' : 'value3',
                'word number 4' : 'value4',
                'word number 5' : 'value5'
            ,
'and so on...': 'and so on...'

负责填充数据库的 Python 代码摘要包含以下命令:

"""CONNECTING TO DB"""
client = MongoClient('mongodb://localhost:27017/')
db = client['totworddb']

for doc in docs:
   fredDist = Counter(tokens)
   collection = db[doc]
   collection.insert_many([freqDist])

这段代码一旦执行,就会出现以下错误:

pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [WinError 10061] 无法建立连接。执着拒绝 目标计算机

我当然没有使用最好的方法来完成我想要的任务,但我什至找不到足够的文档来找到至少一个类似的解决方案。我很想知道如何使用 pymongo。

【问题讨论】:

【参考方案1】:

我能够复制您所面临的错误。执行此代码时,MongoDB 服务器未在您的计算机上运行。在系统上安装 MongoDB 并将其添加到系统变量(或 PATH 变量)后,您需要打开命令提示符并运行以下命令:mongod。这将在 localhost:27017 上启动 MongoDB 服务器。您现在可以在单独的命令提示符下运行代码并开始将数据插入 MongoDB 集合。

【讨论】:

非常感谢您的建议。等我回到 mongo 工作,我会听从你的建议的!

以上是关于使用 Python 使用嵌套字典填充 MongoDB 数据库的主要内容,如果未能解决你的问题,请参考以下文章

你如何在 Python 中创建嵌套字典?

python 使用嵌套的字典代替嵌套如果判断

Django模板语法

2 嵌套字典 Json 格式使用 Json_norminalize 使用 python

Python,如何使用字典填充数据框中的空值

使用Python从CSV文件创建嵌套字典