Python使用MongoDB一

在PyCharm中安装Mongo Plugin

在PyCharm中的菜单,依次选择File命令->选择settings命令->选择plugins命令->选择browse repositories命令->输入mongo,然后选择Mongo Plugin。重启PyCharm,可以在右侧看到Mongo Explorer。如果没有这个窗口,可以将鼠标光标停留在左下角的图标上,然后在自动弹出的菜单中选择Mongo Explorer命令。
在这里插入图片描述在这里插入图片描述
在Mongo Explorer窗口中单击设置按钮,创建连接(在PyCharm File菜单的Setting中也可以设置)
在这里插入图片描述
在Mongo Servers设置窗口中单击左侧加号按钮(addServer)
在这里插入图片描述
输入连接名,然后单击"Test Connection"按钮,提示信息为"Connection test successful"时表示连接正常,然后单击右下角的OK按钮,保存设置即可。
在这里插入图片描述

将数据存入MongoDB

import requests
import time
# 加载pymongo库
import pymongo
# 建立连接
client = pymongo.MongoClient('localhost',27017)
# 新建名为'weather'的数据库
book_weather = client['weather']
# 新建名为'sheet_weather_3'表
sheet_weather=book_weather['sheet_weather_3']

url='https://cdn.hewrather.com/china-city-list.txt'
strhtml=requests.get(url)
data=strhtml.text
data1=data.split("\n")
for i in range(3):
	data1.remove(data1[0])
for item in data1:
	url='https://free-api.heweather.com/v5/forecast?city='+item[0:11]+'&key=7d0daf285f64736a42261161cd3060b'
	strhtml=requests.get(url)
	time.sleep(1)
	dic=strhtml.json()
	# 写入一条数据
	sheet_weather.insert_one(dic)

运行后双击连接,可以看到名为weather的数据库
在这里插入图片描述
展开weather数据库,双击sheet_weather_3表,可以观察到天气数据,数据以JSON格式存在数据库中。
在这里插入图片描述

查询MongoDB数据

import pymongo
client=pymongo.MongoClient('localhost',27017)
book_weather = client['weather']
sheet_weather=book_weather['sheet_weather_3']
#查找键HeWeather5.basic.city值为北京的数据
for item in sheet_weather.find(('HeWeather5.basic.city':'北京')):
	print(item)
#查询天气最低气温大于5摄氏度的城市名
for item in sheet_weather.find()
	#因为数据需要3天的天气预报,因此循环3次
	for i in range(3):
		tmp = item['HeWeather5'][0]['daily_forecast'][i]['tmp']['min']
		#使用update方法,将表中最低气温数据修改为数值型
		sheet_weather.update_one({'_id':item['_id']},{'$set':{'HeWeather5.0.daily_forecast.{}.tmp.min'.format(i):int(tmp)}})
	#提取出最低气温低于5摄氏度的城市
	for item in sheet_weather.find(('HeWeather5.daily_forecast.tmp.min':{'$gt':5})):
		print(item['HeWeather5'][0]['basic']['city'])

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本博客内容来自Python 3爬虫、数据清洗与可视化实战

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页