Python如何从这个api字典中获取所有id



我的代码

import requests 
groups = requests.get(f'https://groups.roblox.com/v2/users/1283171278/groups/roles')
groupsIds = groups.json()['id']

运行时出现错误

Traceback (most recent call last):
File "c:/Users/badam/Documents/Request/Testing/Group Checker.py", line 16, in <module>
groupsIds = groups.json()['id']
KeyError: 'id'

这个列表相当大,有100个ID列表。无论如何,我可以把它们都拿出来,做成一个列表吗?

这是我正在查看的apihttps://groups.roblox.com/v2/users/1283171278/groups/roles

结果中有密钥data,因此对其进行迭代,并从rolegroup密钥中获得id

import json
import requests 

groups = requests.get(f'https://groups.roblox.com/v2/users/1283171278/groups/roles')
groupsIds = groups.json()
# uncomment this to print all data:
# print(json.dumps(groupsIds, indent=4))
for d in groupsIds['data']:
print(d['group']['id'])
print(d['role']['id'])
print('-' * 80)

打印:

...
--------------------------------------------------------------------------------
3904940
26571394
--------------------------------------------------------------------------------
3933808
26746825
--------------------------------------------------------------------------------
3801996
25946726
--------------------------------------------------------------------------------
...

编辑:要存储要列出的所有ID,您可以执行:

import json
import requests 

groups = requests.get(f'https://groups.roblox.com/v2/users/1283171278/groups/roles')
groupsIds = groups.json()
# uncomment this to print all data:
# print(json.dumps(groupsIds, indent=4))
all_ids = []
for d in groupsIds['data']:
all_ids.append(d['group']['id'])
all_ids.append(d['role']['id'])

print(all_ids)

打印:

[4998084, 33338613, 4484383, 30158860, 4808983, 32158531, 3912486, 26617376, 4387638, 29571745, 3686254, 25244399, 4475916, 30106939, 4641294, 31134295, 713898, 4280806, 4093279, 27731862, 998593, 6351840, 913147, 5698957, 3516878, 24177537, 659270, 3905638, 4427759, 29811565, 587575, 3437383, 4332819, 29229751, 3478315, 23936152, 2811716, 19021100, 472523, 2752478, 4734036, 31698614, 3338157, 23028518, 1014052, 6471675, 4609359, 30934766, 3939008, 26778648, 4817725, 32211571, 601160, 3519151, 4946683, 33009776, 1208148, 7978533, 4449651, 29945000, 4634345, 31089984, 5026319, 33518257, 2629826, 17481464, 821916, 5031014, 4926232, 32881634, 4897605, 32702661, 3740736, 25575394, 448496, 2610176, 5036596, 33583400, 4876498, 32570198, 3165187, 21791248, 4792137, 32055453, 856700, 5279506, 4734914, 31704012, 1098712, 7127871, 4499514, 30252966, 3846707, 26215627, 1175898, 7725693, 4503430, 30276985, 3344443, 23071179, 2517476, 16546164, 4694162, 31461944, 780837, 4744647, 2616253, 17367584, 2908472, 19824345, 2557006, 16869679, 2536583, 16700979, 535476, 3126430, 3928108, 26712025, 641347, 3781071, 2931845, 20016645, 1233647, 8182827, 2745521, 18459791, 803463, 4902387, 490144, 2856446, 488760, 2848189, 3574179, 24536348, 4056581, 27505272, 1007736, 6423078, 4500976, 30261867, 898461, 5588947, 4161433, 28157771, 4053816, 27488481, 4774722, 31947028, 3091411, 21243745, 3640836, 24959291, 3576224, 24548933, 3770621, 25756964, 4142662, 28039034, 538165, 3142587, 539598, 3150924, 602671, 3528176, 537016, 3135630, 3175117, 21863370, 4633984, 31087818, 3904940, 26571394, 3933808, 26746825, 3801996, 25946726, 3818582, 26046898, 4056358, 27503773, 823297, 5040824, 4226680, 28562065, 4047138, 27446480, 4200090, 28397805, 821483, 5027958, 624104, 3658165, 3576317, 24549546, 3257526, 22460774]

print(groups.json()['data'][0]['group']['id'])

试试这个代码,它会返回id

对于迭代,请尝试以下操作:

groupID = groups.json()['data']

length_of_data = len(groups.json()['data'])

for i in range(length_of_data):

print(groupID[i]['group']['id'])

最新更新