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)

 

 

 

 

posted @ 2019-06-21 11:20  taoziya  阅读(369)  评论(0)    收藏  举报