Files
jupyter/体测单位/体测数据管理.ipynb
T
2023-09-15 14:16:09 +08:00

7.5 KiB

新增体测单位

In [8]:
import pymongo

myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient["baogao"]
mycol = mydb["place"]

id = 469849
name =  "长炼医院"
myquery = { "id": id }
num = mycol.count_documents(myquery)
if num>0:
    print(num)
else:
    mydict = { "id":id,"name": name,  }
    x = mycol.insert_one(mydict) 
1

生成手机验证码

In [ ]:
import openpyxl
import os,sys,shutil
import json
import math
import glob
import random
from pathlib import Path
import pymongo

myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient["baogao"]


wb = openpyxl.load_workbook('data/北京石油分公司报告明细.xlsx')
place_id = 419309
place_code = '01'
dw_name = '北京石油分公司'
fi_path = 'file/2023-06-15'
fls = glob.glob(f'{fi_path}/*.pdf')

code_list = []
for i in range(10):   # 0~9
    code_list.append(str(i))
    
list1 = []
i = 0
while i < len(fls):
    code = random.sample(code_list,6)   #随机取6位数
    code_num = ''.join(code)    
    if code_num not in list1:
        list1.append(place_code+code_num)
        i +=1
print(len(list1))
sheet = wb.active
# sheets = wb.sheetnames
list2 = []
i = 0
dict2 = {}
for n in range(2, sheet.max_row+1):
    if sheet.cell(n,1).value is not None:
        dict1 = {}
        phone = str(sheet.cell(n, 3).value)
        code = int(sheet.cell(n, 1).value)
        yzm = list1[i]
        i+=1
        dict1 = {'place_id':place_id,'code':yzm,'fn':str(code)+'.pdf'}
        list2.append(dict1)
        dict2[code]={'phone':phone,'code':yzm}
mycol = mydb["pdf"]
x = mycol.insert_many(list2)
filename = 'data/01.json'
with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False)
print('ok')
In [ ]:
import pymongo

myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient["baogao"]
place_id = 469849

x = 

批量发送短信

In [ ]:
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.sms.v20210111 import sms_client, models
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
import json

filename = 'data/01.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)
for k, v in dict1.items():
    phone = '+86'+v['phone']
    yzm = v['code']
    try:    
        secretId = "AKID22rVyvSqbikXFFvav31ykc9YmqjN6KYc"
        secretKey = "51XVL1YxDKI6mJh8au6DDuTskS1RhwJX"
        cred = credential.Credential(secretId, secretKey) 
        httpProfile = HttpProfile()
        httpProfile.reqMethod = "POST"  # post请求(默认为post请求)
        httpProfile.reqTimeout = 30    # 请求超时时间,单位为秒(默认60秒)
        httpProfile.endpoint = "sms.tencentcloudapi.com"  # 指定接入地域域名(默认就近接入)
        clientProfile = ClientProfile()
        clientProfile.signMethod = "TC3-HMAC-SHA256"  # 指定签名算法
        clientProfile.language = "en-US"
        clientProfile.httpProfile = httpProfile
        client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile)
        req = models.SendSmsRequest()
        req.SmsSdkAppId = "1400140089"
        req.SignName = "坤铭教育"
        req.TemplateId = "1875765"    
        req.TemplateParamSet = ["北京石油分公司体测者",yzm]
        req.PhoneNumberSet = [phone]
        req.SessionContext = ""
        req.ExtendCode = ""
        req.SenderId = ""
        #resp = client.SendSms(req)
        dict2 = json.loads(resp.to_json_string(indent=2))

        print(v['phone'],dict2['SendStatusSet'][0]["Message"])
    except TencentCloudSDKException as err:
        print(v['phone'],err)
In [ ]:
import json

filename = 'data/01.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)
for k, v in dict1.items():
    phone = '+86'+v['phone']
    yzm = v['code']
    print(k,phone,yzm)
In [ ]:
dict1 = json.loads(resp.to_json_string(indent=2))
print(dict1['SendStatusSet'][0]["Message"])
In [ ]: