Мой код

 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 идентификаторов, в любом случае я могу взять их все и превратить в список?

Вот api, который я смотрю на https://groups.roblox.com/v2 / users / 1283171278 / groups / roles

1
Flaried 1 Сен 2020 в 22:27

2 ответа

Лучший ответ

В результате есть ключ data, поэтому перебираем его и получаем id из ключей role и group:

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
--------------------------------------------------------------------------------

...

РЕДАКТИРОВАТЬ: Чтобы сохранить все идентификаторы в списке, вы можете:

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]
1
Andrej Kesely 1 Сен 2020 в 19:59

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

Попробуйте этот код, он возвращает идентификатор

Для итерации попробуйте следующее:

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

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

for i in range(length_of_data):

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

1
RitwickJoshi 1 Сен 2020 в 19:50