当前位置 : 主页 > 编程语言 > python >

Python使用MongoDB一

来源:互联网 收集:自由互联 发布时间:2022-08-10
在PyCharm中安装Mongo Plugin 在PyCharm中的菜单,依次选择File命令-选择settings命令-选择plugins命令-选择browse repositories命令-输入mongo,然后选择Mongo Plugin。重启PyCharm,可以在右侧看到Mongo Exp


在PyCharm中安装Mongo Plugin

在PyCharm中的菜单,依次选择File命令->选择settings命令->选择plugins命令->选择browse repositories命令->输入mongo,然后选择Mongo Plugin。重启PyCharm,可以在右侧看到Mongo Explorer。如果没有这个窗口,可以将鼠标光标停留在左下角的图标上,然后在自动弹出的菜单中选择Mongo Explorer命令。

Python使用MongoDB一_html

Python使用MongoDB一_html_02


在Mongo Explorer窗口中单击设置按钮,创建连接(在PyCharm File菜单的Setting中也可以设置)

Python使用MongoDB一_数据_03


在Mongo Servers设置窗口中单击左侧加号按钮(addServer)

Python使用MongoDB一_html_04


输入连接名,然后单击"Test Connection"按钮,提示信息为"Connection test successful"时表示连接正常,然后单击右下角的OK按钮,保存设置即可。

Python使用MongoDB一_python_05

将数据存入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的数据库

Python使用MongoDB一_数据库_06


展开weather数据库,双击sheet_weather_3表,可以观察到天气数据,数据以JSON格式存在数据库中。

Python使用MongoDB一_mongodb_07

查询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使用MongoDB一_html_08


Python使用MongoDB一_数据_09


Python使用MongoDB一_数据库_10


网友评论