Mongo与Mysql以及sql server都是提供命令行检索方式的。那么问题来了,我们为什么还要使用Python去连接、访问以及操作这些数据库呢?
原因有很多,其中较为重要的一点是python是检索并连接数据库(诸如,Mongo/Mysql/Sql server等)与外部文件系统(诸如,csv/excel/json/txt等)的桥梁。
1.连接数据库
使用起来简单方便,使用的是python中的MongoClient包。如果你机器上没有安装,就使用pip install MongoClient安装一下。
给出数据库存储机器的ip,端口号。MongoDB默认的端口号是27017。
这里访问数据库data,可以直接在连接的时候通过方括号访问。
其实,你只要会python,只要连上了数据库,根本无需知道MongoDB自带的一些查询命令就可以轻松使用该数据库。只要这句:
for item in db.get_collection('concise').find():
这条语句是是无条件查询并返回mongodb中的concise这个collection内所有的记录。这个返回值是以字典的形式return的,接下来的许多操作,本质上都是python操作字典这个数据结构。
import pandas as pd
import re
from pymongo import MongoClient
db = MongoClient('192.168.112.167',27017)['data']
data = []
for item in db.get_collection('concise').find():
new = {}
aimed_Tag = set()
for keyword in keywords:
pattern = re.compile('.*'+keyword+'.*')
if 'desc' in item and pattern.match(str(item['desc'])) is not None:
aimed_Tag.add(keyword)
elif 'tagset' in item and pattern.match(str(item['tagset'])) is not None:
aimed_Tag.add(keyword)
if len(aimed_Tag) > 0:
new['_id'] = str(item['_id'])
new['aimed_Tag'] = aimed_Tag
data.append(new)
print(len(data))
2.正则表达式进行模糊匹配
正则表达式本身功能非常强大,也不是几句话,几次实践就能全部了解的。结合工作中常用到的功能给大家简单举个例子。
比如我们的诉求是找出包含了一下关键词的记录,并打印命中的关键词。做法是
(1)构建一个正则模式pattern,这个模式的含义是中间是关键词组,不管两边是什么东西,都算是命中。
(2)用这个模式pattern去匹配字符串。可以想象一排抽屉摆在那里,你手里拿着一串钥匙(类比pattern)一个一个去试开,只要开开一个就算成功。
keywords = ['正义','民族','英雄','科学发展']
for keyword in keywords:
pattern = re.compile('.*'+keyword+'.*')
if pattern.match(str(item['desc'])) is not None:
print(keyword)
else:
continue
今天冬至了。晚上天儿真冷。
周五,下班回家。
2017/12/22
👏👏👏再看看我们以前的文章😃😃😃
🌺 Excel中数据分析工具库-相关系数篇
🌺 干货,手把手教会你做相关性分析
🌺 5年数据分析路,小结。
🌺 用户细分及画像分析
🌺 K-近邻算法及实践
欢迎关注,微信公众号“数据分析师之家”
扫描二维码 关注我们
💁提供职业规划、简历指导、面试辅导服务哦
QQ交流群:254674155