Как получить значения выборочно из словаря python

Я прочитал файл JSON, создал словарь и попытался создать из него файл свойств в формате key=value всего с парой атрибутов (found и location). Из приведенного ниже словаря мне нужно создать файл с содержимым

found=bike.tar.gz
location=china

Содержимое приведенного ниже словаря будет в том же формате и всегда будет содержать только один «найденный» элемент.

>>> pprint(zdict)
{
 'found': {
    'bike.tar.gz': {
           'imported': False,
           'used': True,
           'location': 'china'
            }
     }
}

Я пытался:

>>> dict(list(zdict.values())[0]).keys()
dict_keys(['bike.tar.gz'])

не мог выйти за рамки этого.

0
0
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сложная часть состоит в том, чтобы получить значение ключа, поскольку это особый случай: в качестве значения словаря используется один ключ. Так что конвертируем в список и берем первый элемент.

Затем используйте этот ключ, чтобы найти место.

zdict = {
 'found': {
    'bike.tar.gz': {
           'imported': False,
           'used': True,
           'location': 'china'
            }
     }
}

bike = list(zdict["found"])[0]
print("found={}".format(bike))
print("location={}".format(zdict["found"][bike]["location"]))

печатает:

found=bike.tar.gz
location=china

но этот формат, вероятно, предназначен для того, чтобы иметь несколько dicts под ключом «found», поэтому используйте цикл, чтобы распечатать их все (также работает с вашим примером и позволяет избежать сбоя, если список пуст):

for bike,items in zdict["found"].items():
    print("found={}".format(bike))
    print("location={}".format(items["location"]))

Другие вопросы по теме