import os import sys import time import django local_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) print(local_path) if local_path not in sys.path: sys.path.append(local_path) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kedong.settings") django.setup() from django.conf import settings from smartfarming.models.device import MongoDevice from smartfarming.models.weather import QXZdata_New import json import requests import pymongo from urllib import parse my_client = pymongo.MongoClient(host="8.136.98.49", port=27017, username="root", password="yfkj@6020") my_col = my_client['smartfarming']['sa_device'] qx_device = { "861551055315402", "861551056086671", "861551056088693", "861551056088479", "861551056088719", "861551055313365", "861551056086614", "861551056093800", "861551056095367", "861551056102502", "861551056096621", "861551056101785", "861551056086549", "861551055354120", "861551055353536", "861551056092018", "861551055319586", "861551056088875", "861551055324651", "861551055313423" } def dsj_qxz_conf_info(): user = parse.quote_plus("root") passwd = parse.quote_plus("yfkj@6020") # 账号密码方式连接MongoDB | "mongodb://用户名:密码@公网ip:端口/" myclient = pymongo.MongoClient("mongodb://{0}:{1}@8.136.98.49:57017/".format(user,passwd)) # myclient = pymongo.MongoClient("mongodb://127.0.0.1:12514/") # 指定数据库 db = myclient.smartfarming # 指定集合 collection = db.sa_device collection1 = db.sa_qxz_data for i in qx_device: device_info = collection.find_one({'device_id':i}) device_id = device_info['id'] id = device_info["id"] device, is_created = MongoDevice.objects.get_or_create( device_id = device_info["device_id"], defaults={ "dver_num": device_info["dver_num"], "device_model": device_info["device_model"], "device_type_id": device_info["device_type_id"], "device_name": device_info["device_name"], "owner_uid": device_info["owner_uid"], "user_dealer": device_info["user_dealer"], "province": device_info["province"], "city": device_info["city"], "district": device_info["district"], "device_code": device_info["device_code"], "device_status": device_info["device_status"], "off_time": device_info["off_time"], "ftp_push_addr": device_info["ftp_push_addr"], "serverconf": device_info["serverconf"], "lng": device_info["lng"], "lat": device_info["lat"], "gps": device_info["gps"], "addtime": device_info["addtime"], "uptime": device_info["uptime"], "glass_slide_time": device_info["glass_slide_time"], "cultivate_time": device_info["cultivate_time"], "add_position": device_info["add_position"], "simid": device_info["simid"], "disable": device_info["disable"], "decoy": device_info["decoy"], "sim_dealer": device_info["sim_dealer"], "xy_uptime": device_info["xy_uptime"], "networking": device_info["networking"], "equipment": device_info["equipment"], "sale_uid": device_info["sale_uid"], "salesman_task_number": device_info["salesman_task_number"], "whether_equipment_status": device_info["whether_equipment_status"], "device_expire_time": device_info["device_expire_time"], "device_activation": device_info["device_activation"], "device_expire": device_info["device_expire"], "device_expire_days": device_info["device_expire_days"], "water_pump_switch": device_info["water_pump_switch"], "device_notes": device_info["device_notes"], "water_pump_times": device_info["water_pump_times"], "water_pump_switch_times": device_info["water_pump_switch_times"], "xy_expire_time": device_info["xy_expire_time"], "device_tag": device_info["device_tag"] } ) print(device.id, is_created) data = {'device_id': i,'uptime':{'$gt':1690387200}} cursor = collection1.find(data,{'_id':0,'id':0}) for i in cursor: qx_data = QXZdata_New.objects.create( device_id = i['device_id'], uptime = i['uptime'], e1 = i['e1'], e2 = i['e2'], e3 = i['e3'], e4 = i['e4'], e5 = i['e5'], e6 = i['e6'], e7 = i['e7'], e8 = i['e8'], e9 = i['e9'], e10 = i['e10'], e11 = i['e11'], e12 = i['e12'], e13 = i['e13'], e14 = i['e14'], e15 = i['e15'], e16 = i['e16'], e17 = i['e17'], e18 = i['e18'], e19 = i['e19'], e20 = i['e20'], e21 = i['e21'], e22 = i['e22'], e23 = i['e23'], e24 = i['e24'], e25 = i['e25'], e26 = i['e26'], e27 = i['e27'], e28 = i['e28'], e29 = i['e29'], e30 = i['e30'] ) print(f"设备: {i} 数据量 {cursor.count()}") return True if __name__ == "__main__": dsj_qxz_conf_info()