3.3 存储数据到MongoDB
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,它在非关系数据库中功能最丰富、最像关系数据库。
3.3.1 下载并安装MongoDB
1、下载MongoDB
官网下载:http://www.mongodb.com/download-center#community
2、配置本地MongoDB
每次启动时都需要在CMD中配置,找到安装目录下的bin文件夹路径,如图所示。

由cmd进入以下路径,如下所示。

接着在目录下新建data文件夹,C:\Program Files\MongoDB\Server\3.4\data;logs文件夹,C:\Program Files\MongoDB\Server\3.4\logs;conf文件夹,C:\Program Files\MongoDB\Server\3.4\conf。分别用来存放数据,日志和配置文件。

在conf文件夹下新建mongodb.config文件,内容如下:
dbpath=C:\Program Files\MongoDB\Server\3.4\data #数据库路径 logpath=C:\Program Files\MongoDB\Server\3.4\logs\mongodb.log #日志输出文件路径 logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件 journal=true #启用日志文件,默认启用 quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false port=27017 #端口号 默认为27017
在logs文件夹下,新建mongodb.log文件。
开启mongodb服务,以管理员身份启动dos命令窗口,启动mongodb服务之后,可在服务中看到mongodb服务,下次直接执行bin目录下的mongo.exe客户端就可以进行操作了。
代码如下所示:
mongod.exe --config "C:\Program Files\MongoDB\Server\3.4\conf\mongodb.config" --install --serviceName "mongodb" net start mongodb


再打开一个CMD,进入MongoDB确认数据库已经启动,进入bin路径,如下所示。
cd C:\Program Files\MongoDB\Server\3.4\bin
键入mongo连接数据库,显示“>”就代表MongoDB已经正常启动,如下所示。

3.3.2 在PyCharm中安装Mongo Plugin
在PyCharm中的菜单,依次选择“File”->"settings"->"plugins"->browse repositories"->输入"mongo",然后选择Mongo Plugin,如下图所示。

安装好重启PyCharm,就可以在右侧看到Mongo Explorer。
如果没有这个窗口,可以将鼠标光标停留在左下角的图标上,然后在自动弹出的菜单中选择Mongo Explorer命令,如图所示。

接下来在Mongo Explorer窗口单击左侧“+”按钮(addServer),输入连接名,然后单击“Test Connection”(测试连接)按钮,提示信息为“Connection test successful”时表示连接正常,然后单击右下角的“OK”按钮,保存设置即可,如图所示。

3.3.3 将数据存入MongoDB
下面尝试将获取的数据存入MongoDB中,首先输入以下这段代码。
import requests import time #加载pymongo库 import pymongo client = pymongo.MongoClient('localhost',27017) #在MongoDB中新建名为weather的数据库 book_weather = client['weather'] #在weather库中新建名为sheet_weather_3的表 sheet_weather = book_weather['sheet_weather_3'] url = 'https://cdn.heweather.com/china-city-list.txt' strhtml = requests.get(url) strhtml.encoding = 'utf8' data = strhtml.text data1 = data.split("\n") for i in range(6): # 因为前6行没数据,删除前6行 data1.remove(data1[0]) for item in data1: url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[2:13]+'&key=871a107479f049cca8f7d22b031a1c2d' strhtml = requests.get(url) strhtml.encoding = 'utf8' time.sleep(1) dic = strhtml.json() #向表写入一条数据 sheet_weather.insert_one(dic)
运行后双击连接,可以看到名为weather的数据库,如图所示。

展开weather数据库,双击sheet_weather_3这张表(如下图所示),会弹出预览窗口(如图所示),可以从该窗口观察获取到的天气数据,数据以JSON格式存在数据库中。

可以直接在预览窗口中展开JSON的树状结构,如图所示。

需要提前安装PyMongo库,这是一个提供Python和MongoDB连接的库,使用方法如下。
1、建立连接
输入以下代码,其中localhost是主机名,27017是端口号(默认情况下是这个参数)。
client = pymongo.MongoClient('localhost',27017)
2、新建名为‘weather’的数据库
book_weather = client['weather']
3、新建名为“sheet_weather_3”的表
sheet_weather = book_weather['sheet_weather_3']
4、写入数据
输入以下代码。
sheet_weather.insert_one(dic)

浙公网安备 33010602011771号