由于源文件不是MongoDB支持的JSON和BSON 格式的数据, 所以只能将源数据转变格式后, 用脚本将其导入,所测数据为中科院信工所提供的数据。(这也是在信工所接触的第一个写程序的活。)源码如下: #!/usr/bin/env python #encoding:utf-8 ################################### # function: analysis the log in the 'die' to JSON , and #output the data to the MongoDB. # data: 2014/3/31 #History: 在Python中,批量导入数据到MongoDB数据库是一个常见的任务,特别是在处理非标准格式的数据时。在给定的代码示例中,我们看到一个简单的Python脚本,它将非JSON或BSON格式的数据转换为可被MongoDB接受的格式并进行批量导入。以下是这段代码的关键知识点及其详细解释: 1. **MongoDB连接**: - 使用`pymongo`模块来与MongoDB进行交互。`pymongo`是Python的一个官方驱动,提供了操作MongoDB数据库的接口。 - `connect_mongodb()`函数通过`pymongo.Connection(servers)`建立与MongoDB服务器的连接,其中`servers`参数是MongoDB的URI(Uniform Resource Identifier),在这个例子中是`mongodb://localhost:27017`,表示本地主机的默认端口27017。 2. **数据库操作**: - 连接成功后,通过`conn.database_names()`获取所有数据库的名称。 - `conn.my_mongodb`创建了一个名为`my_mongodb`的数据库实例。在实际应用中,你需要根据自己的需求指定数据库名称。 3. **数据转换**: - `str_process(string, db)`函数负责将单行数据转换为字典`d`,然后将这个字典插入到`user`集合中。这里假设每行数据包含四个字段,分别对应`projectcode`、`pagename`、`pageview`和`bytes`。 - 字符串处理包括`split(' ')`方法来分割字符串,以及去除`bytes`字段末尾的空格。 4. **文件处理**: - `file_process(source_file, db)`函数逐行读取源文件,并对每一行调用`str_process`函数进行处理,最后将处理后的数据插入到数据库中。 - 使用`open(source_file, 'r')`打开文件,并通过`readline()`方法逐行读取。 5. **目录遍历**: - `get_dir_list(dir)`函数遍历指定目录`dir`下的所有文件名,并将它们添加到列表`dat0`中。 - `os.listdir(dir)`用于获取目录下的文件名列表。 6. **批量处理**: - `all_file_process()`函数获取用户输入的目录名,获取该目录下所有文件,然后对每个非`log_file_process.py`的文件调用`file_process()`进行处理,即批量导入数据到MongoDB。 7. **输入/输出**: - 用户通过`raw_input('please input the dir name:')`提供目录名,使得脚本具有交互性。 - 脚本运行过程中使用`print`语句输出进度信息,帮助用户了解当前操作状态。 这个脚本对于批量导入非标准格式的数据到MongoDB提供了一个基础框架,但可能需要根据实际数据格式进行调整。例如,如果数据格式不是按照预设的四字段模式,`str_process()`函数需要修改以适应新的格式。此外,错误处理和日志记录等也是实际项目中需要考虑的重要方面。
- 粉丝: 4
- 资源: 894
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 15-面试题库(14个维度选拔考查).doc
- 28-绝对必备:HR经理面试提问大全(100问).doc
- 25-100个最权威的招聘面试题及回答解析.doc
- 27-HR经理常用的21个经典面试问题.doc
- 21-HR经理面试问题样例大全(30余种能力考查).doc
- 23-《职业测评--职场成功测评之完整题库》附答案.doc
- 26-200个名企的面试题详解(微软+谷歌+联合利华).doc
- 22-101个面试难题及结构化面试题库(附点评).doc
- 31-世界五百强面试题目及应答评点(全套50题).doc
- 30-面试通用题库以及压力测试.doc
- 29-面试通关秘笈:面试过程中常见的刁钻问题汇总.docx
- 32-招聘专员必备《HR结构化面试题库大全及解析》.doc
- python条件语句和高级应用
- 金属拉链穿头机(sw10可编辑+工程图)全套技术资料100%好用.zip
- 家具设备1出2三角木头机(sw18可逼哪家+工程图+BOM)全套技术资料100%好用.zip
- 1-销售面试题.xls
评论0