@nedland

Вывести случайный ключ из словаря json?

Суть вопроса, как вывести случайный ключ из словаря json.
Перегуглил все что можно, одни костыли и кода в 10 строчек, и то не работает. Неужели нет простого способа.
def randkey():
    with open("file.json") as file:
        dict = json.load(file)
       
    for k, v in sorted(dict.items())[-1:]:
        randkeyvalue =   f"Имя: {v['Name']}\n" \
                         f"Возраст: {v['Age']}\n"


На данный момент выводит одну последнюю запись, а хотелось бы случайную.
Подскажите люди добрые, спасибо
ДОПОЛНЯЮ:
Смотрите, если я могу отсортировать словарь в обратном порядке ( sorted() ) и взять из него самое первое значение [-1:]. Могу ли я отсортировать его РАНДОМНО (случайном порядке) и брать первое значение и естественно оно всегда будет разное.
  • Вопрос задан
  • 416 просмотров
Решения вопроса 1
@deliro
Вывести случайный ключ из словаря json

Так ключ или значение? Так из словаря или из JSON?

Вывести случайный ключ из словаря json

from random import choice
choice(list(dct.keys()))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nedland Автор вопроса
import random

def randitem():
    with open("file.json") as file:
        dict = json.load(file)

    dictlist = list(dict.items())
    random.shuffle(dictlist)  
       
    for k, v in dictlist[-1:]:
        randkeyvalue =   f"Имя: {v['Name']}\n" \
                         f"Возраст: {v['Age']}\n"


Сделал вот так, работает как нужно. Если [-1:] изменить на -2, -3 и т.п. выведите столько случайных итемов. Спс всем.
P.S
dictlist = random.shuffle(list(dict.items()))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы