Задать вопрос
sssaaayyyuuu
@sssaaayyyuuu
Хочу научиться программировать

Как из списка .json вывести нужные элементы?

def num():
    q = input('Введите ваш ник: ')
    url = 'https://tanksblitz.ru/ru/api/rating-leaderboards/search/?prefix='
    page = requests.get(url + q, headers = HEADERS)
    data1 = page.json()

У меня есть код, который запрашивает ник в игре. Когда я ввожу свой ник, sayuu, мне выдает несколько аккаунтов:
{'115850341': {'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': 
[{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}, '154124495': {'spa_id': 154124495, 'skip': True, 'nickname': 'sayuuj', 'clan_tag': ''}, '152552835': {'spa_id': 152552835, 'skip': True, 'nickname': 'Sayuuna_z', 'clan_tag': ''}}

Как мне сделать так, чтобы он выводил только мою статистику, например ['clan_tag'] [`nickname' ]?
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@denislysenko
data engineer
Если я правильно тебя понял, то вот пример:
data1 = {'115850341': 
                  {'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': 
[{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}
          , '154124495': 
                  {'spa_id': 154124495, 'skip': True, 'nickname': 'sayuuj', 'clan_tag': ''}, 
           '152552835': 
                  {'spa_id': 152552835, 'skip': True, 'nickname': 'Sayuuna_z', 'clan_tag': ''}}



you_dict_data = None

for i in data1:
  if data1[i]['nickname'] == 'sayuu':
    you_dict_data = data1[i]    


# теперь переменная you_dict_data содердит в себе запись с твоим аккаунтом и ты можешь работать с ней как с обычным словарем 
print(you_dict_data)  #{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': [{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}

# вот так ты можешь получить доступ к своим данным
print(you_dict_data['nickname']) # "sayuu"
print(you_dict_data['clan_tag']) # "-Q-"


Вот как это будет выглядеть в твоем коде:
import requests
import json


def num():
    q = input('Введите ваш ник: ')
    url = 'https://tanksblitz.ru/ru/api/rating-leaderboards/search/?prefix='
    page = requests.get(url + q, headers = HEADERS)
    data1 = json.loads(page.text) 

    you_dict_data = None

    for i in data1:
      if data1[i]['nickname'] == 'sayuu':
        you_dict_data = data1[i]

    # теперь переменная you_dict_data содердит в себе запись с твоим аккаунтом и ты можешь работать с ней как с обычным словарем 
    print(you_dict_data)  #{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': [{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}

    # вот так ты можешь получить доступ к своим данным
    print(you_dict_data['nickname']) # "sayuu"
    print(you_dict_data['clan_tag']) # "-Q-"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
1.Изучить принципы работы со структурами данных.
2.Применить данные на практике.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы