python获取奥运奖牌
注意
素材说明: python获取奥运奖牌目前只在windows下验证过
注意
在windows下建议使用vscode运行,如果无法通讯时,建议使用管理员权限打开vscode再运行,由于pycharm需要配置虚拟环境,不建议在pycharm下运行,可能会导致无法通讯。
此例程属于python代码,仅提供参考,淘晶驰不提供python代码的技术支持。
python获取奥运奖牌代码
# 使用前请安装pyserial库和requests库
import requests
import serial #导入模块
import time
import json
from threading import Timer
# 端口,GNU / Linux上的/ dev / ttyUSB0 等 或 Windows上的 COM1 等
# 波特率,标准值:2400 4800 9600 19200 38400 57600 115200 230400 256000 512000 921600
port="com9"
baud=115200
# 初始化任务时间
task1time=600 #每600秒请求一次服务器数据,避免造成服务器负担过大,网络菩萨提供的免费服务器请小力薅,常怀感恩之心
task2time=10 #每10秒向屏幕发送一次
# 初始化金银铜牌数量
gold = 0
silver = 0
bronze = 0
url="https://api.mg-tool.cn/v1/jpb/?country=中国"
def repeat_task1():
response = requests.get(url)
if response.status_code == 200:
data = response.json() #将响应内容解析为JSON
print(data)
# 找到中国的奖牌数据
china_medal_data = next(item for item in data['data'] if item['country'] == '中国')
# 提取中国的金牌、银牌、铜牌数量
global gold,silver,bronze
gold = china_medal_data['gold']
silver = china_medal_data['silver']
bronze = china_medal_data['bronze']
print(f"中国的金牌数:{gold}")
print(f"中国的银牌数:{silver}")
print(f"中国的铜牌数:{bronze}")
else:
print("获取数据失败:",response.status_code)
Timer(task1time,repeat_task1).start()
def repeat_task2():
try:
#超时设置,None:永远等待操作,0为立即返回请求结果,其他值为等待超时时间(单位为秒)
# 打开串口,并得到串口对象
ser=serial.Serial(port=port,baudrate=baud,timeout=5)
print("串口详情参数:", ser)
# 写数据
#注意:编码应与工程的编码一致(设备-字符编码,如果usarthmi中设置的为utf-8,则这里也填写utf8,如果usarthmi中设置的为GB2312,则这里也填写GB2312也可以填写GBK)
# 金牌
str = "gold.val=%d" %gold
result=ser.write(str.encode())
print("发送的数据为:"+str)
# 发送结束符
ser.write(bytes.fromhex('ff ff ff'))
# 银牌
str = "silver.val=%d" % silver
result = ser.write(str.encode())
print("发送的数据为:"+str)
# 发送结束符
ser.write(bytes.fromhex('ff ff ff'))
# 铜牌
str = "bronze.val=%d" % bronze
result = ser.write(str.encode())
print("发送的数据为:" + str)
# 发送结束符
ser.write(bytes.fromhex('ff ff ff'))
ser.close()#关闭串口
except Exception as e:
print("---异常---:",e)
Timer(task2time, repeat_task2).start()
if __name__ == '__main__':
repeat_task1()
repeat_task2()