Python如何读取文件zip压缩包是什么里的文件到MongoDB数据库中呢?压缩包里面有xml文件 sd

这是一个创建于 550 天前的主题,其中的信息可能已经有所发展或是发生改变。

题目的表达可能有些问题。 情况是这样的: 现有已经存在大量数据的 MongoDB 集合,现在要添加一个新的字段,然后这样字段的值来自于一个 json 文件。不过这样文件特别大( 4.5G )在使用 Python 中 json 的 loads ()来操作会卡死,因为 12G 的内存更本弄不了。我还想过 split 来处理 json 文件,但是生成的文件太多,造成在遍历文件的时候卡主了。 至于为什么不用 MongoDB 自带的处理 json ,是因为 json 有些字段不需要。

不过我想想,目前要是能导入进去就可以了。

问题就是怎么去更新呢?

这个不太懂,不过如果没有其它好办法的话能不能用 MongoDB 自带的先导入到一个临时库里再去掉不需要的部分?

使用游标读取数据,手动设置一次更新的数据条数,时间换空间,另外这种可以考虑一下协程或者多进程操作的吧?

你这问题应该和 mongodb 无关吧,主要问题是如何用 python 操作大的 json 文件读写数据

之前遇到过类似的问题,从一个超大的文本文件倒入到数据库,比你这个还大, 10G 每个文件,本来用的 mongodb ,测了一次以后我转到 postgresql 去了……

不生成文件对应的 JSON 对象,直接解析 .json 文件,使用正则表达式或者其他什么手段来提取数据。

}

利用pymongo包进行数据库的连接

使用xlrd包读取excel数据,由于二者数据结构的不同,要将excel格式数据转换为json格式数据

要利用json.loads方法对数据进行解码

#读取excel第一行数据作为存入mongodb的字段名 #将字段名和excel数据存储为字典形式,并转换为json格式
}

本文字数:2871 字

阅读本文大概需要:8 分钟

在之前我用了 3 篇文章的篇幅来介绍了用 Python 操作 MySQL 数据库,今天呢,我们再来介绍另一种可以用 Python 操作的数据库 MongoDB。

MongoDB 也是当下比较火的数据库之一,因为时代的发展需要 NoSQL,还是老办法,在本篇文章中呢,我先来介绍一下 MongoDB 数据库的安装运行和使用,以及用 Python 连接 MongoDB,下面就开始今天的学习。

在这之前,我们先来了解一下什么是 NoSQL:

NoSQL 也就是 Not only SQL,指的是非关系型数据库,它是为了大规模 Web 应用而生的,它的特征诸如模式自由、支持简易复制、简单的 API、大容量数据等。

MongoDB 是 NoSQL 中的一种,选择它的原因是它具有如下特点:

基于 MongoDB 的特点,它擅长的领域如下:

如果大家感兴趣的话,也可以去学习其它的 NoSQL 数据库。

这个和 MySQL 一样,你要使用它,首先就要安装。因为篇幅有限且每个人的操作系统都不一样,具体怎么安装,我不在这赘述,网上的教程很多,随便 Google 一下就是一大堆。

安装完毕后就可以启动数据库。我在这里建立一个简单的库,并且捎带说明 MongoDB 的基本要点,目的在于为后面用 Python 来操作它做铺垫。在这我以 windows 为例,首先进入到 MongoDB 的交互模式下:

在 MongoDB 中,有一个全局变量 db,使用哪个数据库,哪个数据库就会作为对象被赋值给这个全局变量 db。如果这个数据库不存在,就会被新建。

除非是向这个数据库中增加实质性的内容,否则它是看不到的。

向这个数据库中增加一些东西,MongoDB 的基本单元是「文档」。所谓的「文档」就是类似于 Python 中的字典,以「键/值对」的方式保存数据。

db 指向了数据库 mydb,books 是这个数据库里面的一个集合(类似于 MySQL 中的表),向集合 books 里面插入了一个文档(文档对应 MySQL 里面的记录)。「数据库」、「集合」、「文档」构成了

上面的操作有一个比较有意思的地方,并没有 create 之类的命令,用到数据库,就通过 use ***,如果不存在就建立;用到集合,就通过 db.*** 来使用,如果没有就建立。可以总结为“随用,随取,随建立”,简单的一批。

当有了内容以后,就可以看到刚才用到的数据库 mydb 了。简单的使用就是这些,下面就来重头戏啦,毕竟我们是主学 Python 的啊。

要用 Python 来驱动 MongoDB,必须要安装驱动模块,即 pymongo,这个跟操作 MySQL 是类似的。安装方法推荐如下(windows 下):

如果顺利就会看到最后的提示:

然后我们来看一下安装的版本号:

既然 Python 驱动 MongoDB 的模块 pymongo 已安装完毕,那么接下来就是连接,即「建立连接对象」。

竟然报错??怎么回事??明明很多书上都是这么写的,为啥会报错呢?一定要注意这里的坑!这个很版本有关系,我刚学的时候这里直接把我坑傻了。如何你用的是旧版本的 pymongo,比如 2.8 的,你仍然可以用上面的方法,但是你如果用的是新版本的,就得注意一下了,有时候不能盲目的相信书上的东西,因为会有些东西是会变的

是时候请出我们的 dir 来了,看看哪些方法可用,因为结果太多我就不贴上来了,你可以自行在交互模式运行,运行的结果你会发现里面没有 Connection() 这个方法,但是发现有一个 MongoClient(),这是柳暗花明又一村。

随着上面这行代码的运行,Python 已经和 MongoDB 建立了连接。刚才我们已经建立了一个数据库 mydb,并且在这个库里面有一个集合 books,于是:

上面的代码获得了数据库 mydb,并赋值给变量 mdb。

查看集合,发现了我们已经建立好的那个 books,于是再获取这个集合,并赋值给一个变量 books:

接下来,我们就可以操作这个集合中的具体内容啦。

上面的 books 所引用的是一个 MongoDB 的集合对象,它跟前面学习过的其它对象一样,也有一些方法供我们使用,我会在明天的文章中再详细的给大家说明,敬请期待。

如果你觉得本篇文章对你有帮助的话,欢迎点赞支持一下。

}

我要回帖

更多关于 文件zip压缩包是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信