Извлеките все значения из нескольких вложенных списков в словаре.Python

Программы на Python
Anonymous
Извлеките все значения из нескольких вложенных списков в словаре.

Сообщение Anonymous »

Посмотрите на этот словарь:

Код: Выделить всё

{
"0": {
"server": 681262466650734596,
"channel": 693639674841006101,
"balance": 1000,
"bal2": 30000,
"regd": [
{
"user": 624748908479905812,
"exp": 2015.0,
"rank": 2,
"points": 125.69999999999996,
"msgs": 9999,
"tokens": 10000
},
{
"user": 1096531392369807492,
"exp": 501.0,
"rank": 1,
"points": 1.4000000000000004,
"msgs": 1,
"tokens": 10000
},
{
"user": 603657446233210908,
"exp": 600,
"rank": 2,
"points": 169,
"msgs": 0,
"tokens": 12000
},
{
"user": 248793436293955584,
"exp": 630,
"rank": 2,
"points": 169,
"msgs": 0,
"tokens": 12000
},
{
"user": 217098431393431553,
"exp": 555,
"rank": 2,
"points": 169,
"msgs": 0,
"tokens": 12000
}
]
}
}
Я пытаюсь написать функцию (с параметром: номер сервера), которая будет перебирать этот словарь, находить словарь с соответствующим номером сервера, а затем перебирать ключ «regd»/ значения и возвращать все значения 'exp'.
Например,

Код: Выделить всё

e = 'exp'
search_dictionary(serverNum, e)
Функция search_dictionary неполная, не знаю, как действовать, но желаемым результатом является каждое из значений exp в списке, например, так: [2015.0, 501.0, 600, 630 , 555]
Сейчас у меня есть эта функция, но она не работает:

Код: Выделить всё

def PBX(self, User: int, Server: int):
dop = self.ReadLevel()
for key, value_key in dop.items():
if value_key['server'] == Server:
nd = value_key['regd']
for key, value in nd.items():
if 'exp' in key:
res = []
res.append(value['exp'])
print(res)
return
Может ли кто-нибудь мне помочь? Я делал это раньше очень похоже, вчера я решил обновить стиль словаря, все еще выясняя, как извлекать данные с помощью нового стиля.
Я создал еще одну функцию, но все равно ничего не получаю, ничего не печатает

Код: Выделить всё

def PBX(self, User: int, Server: int):
dop = self.ReadLevel()
for key, value_key in dop.items():
if value_key['server'] == Server:
nd = value_key['regd']
res = []  # Initialize list to store 'exp' values
for value_key in nd:
exp_value = value_key['exp']  # Get 'exp' value from user data
if exp_value is not None:  # Check if 'exp' key exists
res.append(exp_value)  # Append 'exp' value to result list
return print(res)  # Return the list of 'exp' values
return []  # Return an empty list if server number not found
Что мне здесь не хватает?


Подробнее здесь: https://stackoverflow.com/questions/784 ... dictionary

Вернуться в «Python»