python - 如何以有效的方式从此类中获取数据?
问题描述
我正在尝试从 f1 游戏中获取数据。目前我能够访问保存数据的类。但无法从中获取数据。问题是该类似乎没有属性。到目前为止,这是我的代码:
from f1_2020_telemetry.packets import unpack_udp_packet
import socket
import f1_2020_telemetry.packets
udp_socket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
udp_socket.bind(("", 20777))
while True:
udp_packet = udp_socket.recv(2048) # Reading udp-packet
packet = unpack_udp_packet(udp_packet) # Packing up udp-packet
if isinstance(packet, f1_2020_telemetry.packets.PacketLapData_V1):
print(type(packet))
break
输出:<class 'f1_2020_telemetry.packets.PacketLapData_V1'>
如果我这样输入:
if isinstance(packet, f1_2020_telemetry.packets.PacketLapData_V1):
print(packet)
break
输出将是:
PacketLapData_V1(header=PacketHeader(packetFormat=2020, gameMajorVersion=1, gameMinorVersion=19), lapData=[LapData_V1(lastLapTime=111.75323486328125, currentLapTime=1004.9793701171875), LapData_V1(lastLapTime=98.846435546875, currentLapTime=23.304824829101562), LapData_V1(lastLapTime=100.474609375, currentLapTime=84.88221740722656)])
所以我知道信息在那里,但我不能用例如访问它packet.lastLapTime
。令我惊讶的是它packet.__dict__
返回 0。我能够将整个内容读取为字符串,然后对其进行切片和拆分,但想知道一种更简单的方法来处理这个问题。
链接到包含有关数据包信息的站点: https ://forums.codemasters.com/topic/50942-f1-2020-udp-specification/ 链接到我正在使用的库: https ://gitlab.com/gparent/f1 -2020-遥测/
解决方案
推荐阅读
- css - for循环中的动态函数参数
- jira - 如何在jira云应用中获取公司名称
- python - 如何为现有熊猫数据框中的每个条目添加标志
- closures - 在 for 循环中使用 var 和使用闭包会产生不同的结果
- google-cloud-platform - 无法将 Search Ads 360 中的历史数据导入 Google BigQuery
- php - 序列化表单验证 Laravel 8
- uml - 如何从用例图中识别正确的主要参与者?
- java - 无法从文本文件中删除记录
- javascript - ReactJS:更新父组件类名或在具有不同类名的子父级中重新创建它
- java - Liquibase:向所有表添加相同的列