你好, 我用Discord机器人做了一个新项目,用于游戏(iRacing),以便在比赛期间保存信息。我使用pyirsdk,查看所有源代码,试图了解它是如何工作的。 但是,我的列表中有一个dict,我被阻止了
DriverInfo:
{
'DriverHeadPosX': -0.579,
'DriverHeadPosY': 0.398,
'DriverHeadPosZ': 0.571,
'Drivers':
[
{'CarIdx': 0, 'UserName': 'Enzo Foucaud', 'AbbrevName': '', 'Initials': '', 'UserID': 409133, 'TeamID': 0, 'TeamName': 'Enzo Foucaud', 'CarNumber': '64', 'CarNumberRaw': 64, 'CarPath': 'mercedesamggt3', 'CarClassID': 0, 'CarID': 72, 'CarIsPaceCar': 0, 'CarIsAI': 0, 'CarScreenName': 'Mercedes AMG GT3', 'CarScreenNameShort': 'Mercedes AMG GT3', 'CarClassShortName': None, 'CarClassRelSpeed': 0, 'CarClassLicenseLevel': 0, 'CarClassMaxFuelPct': '1.000 %', 'CarClassWeightPenalty': '0.000 kg', 'CarClassPowerAdjust': '0.000 %', 'CarClassColor': 16777215, 'IRating': 1, 'LicLevel': 1, 'LicSubLevel': 1, 'LicString': 'R 0.01', 'LicColor': '0xundefined', 'IsSpectator': 0, 'CarDesignStr': '1,dff000,1a4b9b,ffffff', 'HelmetDesignStr': '1,dff000,1a4b9b,ffffff', 'SuitDesignStr': '1,dff000,1a4b9b,ffffff', 'CarNumberDesignStr': '0,0,FFFFFF,777777,000000', 'CarSponsor_1': 0, 'CarSponsor_2': 0, 'CurDriverIncidentCount': 0, 'TeamIncidentCount': 0}
]
}
我这样做是为了知道“用户名”是否存在
DriversInfo_list = ir['DriverInfo']
print('DriverInfo:', DriversInfo_list)
for i in DriversInfo_list:
if i == 'Drivers':
print("Drivers Exists")
SoloDriver = DriversInfo_list['Drivers']
print(SoloDriver)
if [d['UserName'] for d in SoloDriver if 'UserName' in d]:
print('Username Exists')
控制台:
DriverInfo: {...}
Drivers Exists
[{'CarIdx': 0, ...}]
Username Exists
现在,我想提取DriverInfo中的许多“驱动程序”(dict)信息,这是一个列表。 例如,我想要用户名的值,但我不知道如何才能做到这一点。我整天都在搜索..^^我上了很多课来尝试这个^^
谢谢你的回答
假设
Drivers
列表中的每个驱动程序dict都有完全相同的键。否则将抛出KeyError。要避免此错误,请检查lambda中是否存在密钥这取决于是否所有DriversInfo项在驱动程序键中仅包含一个字典的列表。但你可以这样做:
相关问题 更多 >
编程相关推荐