Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pymongo将数据保存到mongodb_Python_Mongodb_Pymongo - Fatal编程技术网

Python 使用pymongo将数据保存到mongodb

Python 使用pymongo将数据保存到mongodb,python,mongodb,pymongo,Python,Mongodb,Pymongo,我在尝试将数据保存到MongoDB时遇到问题 我首先运行这个python程序: import pymongo import sys def main(): connection = pymongo.Connection("mongodb://localhost", safe = True) db = connection.m101 people = db.people person = {'name':'Barack Obama', 'role':'pre

我在尝试将数据保存到MongoDB时遇到问题

我首先运行这个python程序:

import pymongo
import sys

def main():
    connection = pymongo.Connection("mongodb://localhost", safe = True) 

    db = connection.m101
    people = db.people

    person = {'name':'Barack Obama', 'role':'president'}
    people.insert(person)
但是,当我试图从mongoshell检索数据时:

> use m101
切换到db m101

 > db.people.find()

一无所获!我不知道发生了什么事。谢谢您的帮助。

您的代码无法工作,因为从未调用main

添加

if __name__ == '__main__':
    main()

执行时将执行您定义的main函数。

您的代码不工作,因为从未调用main

添加

if __name__ == '__main__':
    main()

执行时将执行您定义的主函数。

您没有执行主函数,因此未执行任何操作。

您没有执行主函数,因此未执行任何操作

简单解

简单解


澄清一下:Python在直接执行文件时将执行最外层的作用域无缩进级别;如问题中所述,脚本只定义main而不调用它。__name__=='_main__'谓词确保只有在直接执行脚本(即从控制台执行python my_main.py)时才执行main;如果导入此脚本,则不会执行main。这是否是所需的行为取决于您的用例;如问题中所述,脚本只定义main而不调用它。__name__=='_main__'谓词确保只有在直接执行脚本(即从控制台执行python my_main.py)时才执行main;如果导入此脚本,则不会执行main。这是否是期望的行为取决于您的用例。